Skip to content

upgrade to m145 webrtc and noise-cancellation lib#1678

Draft
PratimMallick wants to merge 2 commits into
developfrom
upgrade_webrtc_m145
Draft

upgrade to m145 webrtc and noise-cancellation lib#1678
PratimMallick wants to merge 2 commits into
developfrom
upgrade_webrtc_m145

Conversation

@PratimMallick
Copy link
Copy Markdown
Contributor

@PratimMallick PratimMallick commented May 11, 2026

Goal

Upgrading to m145 version of webrtc

Implementation

Describe the implementation

Updated the latest m145 webrtc and the corresponding noise cancellation lib that supports this webrtc version

Testing

Test all things related to video and audio call, audio filters, background, noise cancellation

☑️Contributor Checklist

General

  • I have signed the Stream CLA (required)
  • Assigned a person / code owner group (required)
  • Thread with the PR link started in a respective Slack channel (required internally)
  • PR targets the develop branch
  • PR is linked to the GitHub issue it resolves

Code & documentation

  • Changelog is updated with client-facing changes
  • New code is covered by unit tests
  • Comparison screenshots added for visual changes
  • Affected documentation updated (KDocs, docusaurus, tutorial)
  • Tutorial starter kit updated
  • Examples/guides starter kits updated (stream-video-examples)

☑️Reviewer Checklist

  • XML sample runs & works
  • Compose sample runs & works
  • Tutorial starter kit
  • Example starter kits work
  • UI Changes correct (before & after images)
  • Bugs validated (bugfixes)
  • New feature tested and works
  • Release notes and docs clearly describe changes
  • All code we touched has new or updated KDocs
  • Check the SDK Size Comparison table in the CI logs

🎉 GIF

Please provide a suitable gif that describes your work on this pull request

Summary by CodeRabbit

  • Chores
    • Updated internal dependencies for WebRTC and noise cancellation components to newer snapshot versions.
    • Added support for accessing additional build repositories.

Review Change Stack

@PratimMallick PratimMallick requested a review from a team as a code owner May 11, 2026 13:50
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 11, 2026

PR checklist ✅

All required conditions are satisfied:

  • Title length is OK (or ignored by label).
  • At least one pr: label exists.
  • Sections ### Goal, ### Implementation, and ### Testing are filled (or ignored for dependabot PRs).

🎉 Great job! This PR is ready for review.

@PratimMallick PratimMallick added pr:dependencies Dependency updates pr:improvement Enhances an existing feature or code labels May 11, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 11, 2026

Walkthrough

This PR updates the Android Video SDK to use newer snapshot versions of Stream components. The version catalog is bumped to snapshot releases, and the Gradle build configuration is extended with Sonatype's Maven snapshots repository to resolve those pre-release artifacts.

Changes

Dependency Updates

Layer / File(s) Summary
Version Catalog Updates
gradle/libs.versions.toml
Stream component versions updated: streamWebRTC from 137.1.1 to 145.0.0-SNAPSHOT; streamNoiseCancellation from 1.0.4 to 3.0.0-SNAPSHOT.
Repository Configuration
settings.gradle.kts
Sonatype Central Maven snapshots repository added to dependencyResolutionManagement to support snapshot artifact resolution.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 Two versions hop to snapshots new,
WebRTC bounds and noise fades too,
Sonatype's nest now holds the key,
To fetch what's future, wild and free! 🌱

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The description covers the Goal and Testing sections adequately, but the Implementation section is incomplete and UI Changes section is entirely missing. Complete the Implementation section with specific details about the changes, and clarify whether UI Changes are applicable to this dependency upgrade.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: upgrading WebRTC to m145 and the corresponding noise cancellation library.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch upgrade_webrtc_m145

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@settings.gradle.kts`:
- Line 18: The unscoped Maven snapshots repo can pull unrelated -SNAPSHOT
transitive artifacts; update the repository declaration that currently uses
maven { url = uri("https://central.sonatype.com/repository/maven-snapshots/") }
to add a content filter that only includes the io.getstream group (or a regex
matching io.getstream) so only Stream snapshots (e.g., streamWebRTC,
streamNoiseCancellation) are resolved; modify the maven repository block to use
content { includeGroup("io.getstream") } or
includeGroupByRegex("io\\.getstream(\\..*)?") as appropriate.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 1b9fc921-ece8-457b-b47c-52c455716f23

📥 Commits

Reviewing files that changed from the base of the PR and between 6e99b02 and e802b21.

📒 Files selected for processing (2)
  • gradle/libs.versions.toml
  • settings.gradle.kts

Comment thread settings.gradle.kts
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
maven { url = uri("https://central.sonatype.com/repository/maven-snapshots/") }
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify current blast radius of SNAPSHOT usage and repo scoping.
set -euo pipefail

echo "== Snapshot versions in version catalog =="
rg -n '=\s*".*-SNAPSHOT"' gradle/libs.versions.toml

echo
echo "== Snapshot repo declarations in settings =="
rg -n 'maven-snapshots|snapshotsOnly|includeGroup' settings.gradle.kts

Repository: GetStream/stream-video-android

Length of output: 337


🏁 Script executed:

# Check the complete settings.gradle.kts to understand repo configuration context
head -n 40 settings.gradle.kts

Repository: GetStream/stream-video-android

Length of output: 1124


🏁 Script executed:

# Verify the artifact groups for the snapshot dependencies
rg -A 5 'streamWebRTC|streamNoiseCancellation' gradle/libs.versions.toml | head -n 20

Repository: GetStream/stream-video-android

Length of output: 1151


🏁 Script executed:

# Search for how these snapshot artifacts are declared in actual dependencies
rg 'streamWebRTC|streamNoiseCancellation' --type gradle -A 2 -B 2

Repository: GetStream/stream-video-android

Length of output: 223


🏁 Script executed:

# Search for all snapshot dependencies across gradle files
rg '\-SNAPSHOT' --type gradle-kts --type gradle

Repository: GetStream/stream-video-android

Length of output: 109


🏁 Script executed:

# Also check if there are any other snapshot repos or references
rg 'snapshot' -i settings.gradle.kts

Repository: GetStream/stream-video-android

Length of output: 162


🏁 Script executed:

# Search for all SNAPSHOT references in gradle files
rg '\-SNAPSHOT' . --type gradle -B 2 -A 2

Repository: GetStream/stream-video-android

Length of output: 56


🏁 Script executed:

# Also check build.gradle.kts files in modules to see what snapshots they depend on
fd 'build\.gradle\.kts$' | xargs rg -l 'SNAPSHOT' 2>/dev/null | head -5

Repository: GetStream/stream-video-android

Length of output: 56


🏁 Script executed:

# Broader search for SNAPSHOT in all gradle config files
find . -type f \( -name '*.gradle' -o -name '*.gradle.kts' -o -name '*.toml' \) -exec rg 'SNAPSHOT' {} + 2>/dev/null

Repository: GetStream/stream-video-android

Length of output: 207


🏁 Script executed:

# Check if there are any comments or TODOs about snapshots
rg 'snapshot|SNAPSHOT' settings.gradle.kts -i -B 2 -A 2

Repository: GetStream/stream-video-android

Length of output: 275


Scope the snapshots repository to Stream snapshots only.

The unscoped snapshots repo can unintentionally resolve unrelated -SNAPSHOT transitive artifacts, reducing determinism. Since only io.getstream snapshots are needed (streamWebRTC and streamNoiseCancellation), apply content filtering.

Suggested fix
-        maven { url = uri("https://central.sonatype.com/repository/maven-snapshots/") }
+        maven {
+            url = uri("https://central.sonatype.com/repository/maven-snapshots/")
+            mavenContent { snapshotsOnly() }
+            content { includeGroup("io.getstream") }
+        }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
maven { url = uri("https://central.sonatype.com/repository/maven-snapshots/") }
maven {
url = uri("https://central.sonatype.com/repository/maven-snapshots/")
mavenContent { snapshotsOnly() }
content { includeGroup("io.getstream") }
}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@settings.gradle.kts` at line 18, The unscoped Maven snapshots repo can pull
unrelated -SNAPSHOT transitive artifacts; update the repository declaration that
currently uses maven { url =
uri("https://central.sonatype.com/repository/maven-snapshots/") } to add a
content filter that only includes the io.getstream group (or a regex matching
io.getstream) so only Stream snapshots (e.g., streamWebRTC,
streamNoiseCancellation) are resolved; modify the maven repository block to use
content { includeGroup("io.getstream") } or
includeGroupByRegex("io\\.getstream(\\..*)?") as appropriate.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 11, 2026

SDK Size Comparison 📏

SDK Before After Difference Status
stream-video-android-core 12.04 MB 12.18 MB 0.14 MB 🟢
stream-video-android-ui-xml 5.68 MB 5.68 MB 0.00 MB 🟢
stream-video-android-ui-compose 6.28 MB 6.28 MB 0.00 MB 🟢

@sonarqubecloud
Copy link
Copy Markdown

@PratimMallick PratimMallick marked this pull request as draft May 11, 2026 15:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr:dependencies Dependency updates pr:improvement Enhances an existing feature or code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant