Release notes for WebRTC in Chromium M151

13 views
Skip to first unread message

Fredrik Solenberg

unread,
Jul 28, 2026, 4:13:40 AM (20 hours ago) Jul 28
to discuss-webrtc

WebRTC Changelog M151 (7871..7922)

This release contains 171 commits by 25 authors.

Summary (AI-generated)

  • API & Architecture Modernization: Implemented initial SFrame encryption/decryption infrastructure and RTP depacketizer. Created dedicated api/video/timing module. Deprecated and removed legacy libjingle_peerconnection and libjingle_peerconnection_api targets. Merged rtc_stats and rtc_stats_api targets. Migrated SSLFingerprint creation away from raw-pointer factories.
  • Transport & Congestion Control: Enabled ALR probing for RFC 8888 Congestion Control Feedback. Paced CCFB considering actual wire overhead and bandwidth-limited status. Fixed video recovery freeze on RTP sequence number wrap-around. Made ICE tiebreaker a construction-time argument for Port.
  • Audio & Video Engine: Introduced DefaultVideoJitterTimingRtcpRttCalculator, and RttSimulator to modernize video timing and jitter estimation. Added zero-hertz feature flag for static non-screenshare video. Added native thread checking for audio recording APIs.
  • PeerConnection & Threading: Constructed Call on the signaling thread and simplified RtpTransceiver/BaseChannel threading. Fixed potential deadlocks and race conditions during PeerConnection teardown. Associated RTX with preceding codecs in payload type handling.
  • Security & Robustness: Fixed OOB write vulnerability in RotateDesktopFrame and DXGI size mismatch. Hardened dcSCTP forward TSN processing and throttled RTCP decryption error logging.

Categories

CategoryChanges
API6
Audio5
General113
Infrastructure8
Peerconnection9
Security2
Stats2
Transport16
Video10

Detailed List of Changes (newest first)

Change DescriptionCategoryLinksBug
Forward fix google-internal golden testGeneral📝 🔍webrtc:400630582
Remove payload type 102 reservationAudio📝 🔍webrtc:400630582
Refactor media constants to inline constexpr absl::string_viewGeneral📝 🔍webrtc:42223790
Remove special handling of -1 in bandwidth modifiersGeneral📝 🔍webrtc:502249086
Generate keyframes only for requested SSRCsGeneral📝 🔍webrtc:527515375b/527798266
Update how complete frames are reported to DefaultVideoJitterTiming.General📝 🔍b/493549134
Add libprotobuf-mutator to DEPSInfrastructure📝 🔍None
Add a xvfb_capture_tests rtc_test_suite for the tests that use xvfb.General📝 🔍webrtc:498394143
Update network route on SRTP activationTransport📝 🔍webrtc:461532446
Remove deprecated methods from StunMessageGeneral📝 🔍webrtc:42224821
Add todo guide for outlawing SDP mungingGeneral📝 🔍webrtc:414284082
video_timing_simulator: Replace home-made `VideoTimingFactory` with official `VideoJitterTimingFactory`General📝 🔍b/423646186
SFrameDescriptor should follow google style guideGeneral📝 🔍webrtc:479862368
Make VideoJitterTimingFactory injectable through PeerConnectionFactoryDependencies.General📝 🔍b/493549134
agents: add api-compat-reviewer skillGeneral📝 🔍webrtc:465491622
Fix data channel ID reuse race conditionGeneral📝 🔍chromium:480916451
Reduce max time between repeat frame to avoid flakiness.Video📝 🔍b/519058486
Relax feedback NTP timestamp reordering threshold to 5 secondsTransport📝 🔍webrtc:515090595
Prevent potential nullptr dereference if metrics are not enabled.General📝 🔍None
Add support for external frame drop signal in EncoderBitrateAdjuster.General📝 🔍webrtc:42225768
Make sure rid has a matching ssrc when requesting keyframe.General📝 🔍b/510386551
Split desktop_capture_unittests rtc_library.General📝 🔍webrtc:498394143
Adding thread checker for audio record on native APIsAudio📝 🔍webrtc:524395191
Add RtpDepacketizerSframe (SFrame RTP depacketizer)Transport📝 🔍webrtc:479862368
Update VCMTiming to use VideoJitterTimingInterface.General📝 🔍b/493549134
Sframe encryptor implementationAPI📝 🔍webrtc:479862368
Move the below build targets to api/video:API📝 🔍webrtc:42225070
Fix test window leaks in FullScreenWinApplicationHandlerTestGeneral📝 🔍chromium:409473386
snap: fix race conditionTransport📝 🔍webrtc:526609852
NetEq Smart FlushingGeneral📝 🔍webrtc:12201
Gracefully handle exceptions during Android AudioTrack and AudioRecord initializationGeneral📝 🔍webrtc:524395191
[infra] Add WebRTC CI builders to Gardener rotationGeneral📝 🔍None
Create api/video/timing directory.API📝 🔍b/493549134
Android: Expose VideoCapturer.isCapturing() and add testsGeneral📝 🔍webrtc:512514764
Fix video recovery freeze on RTP seq number wrapTransport📝 🔍webrtc:516639936
Negotiate receiver reference time (RFC 3611 rtcp-xr:rcvr-rtt) in SDPGeneral📝 🔍webrtc:516205747
Reassign ownership of WebRTC documentationInfrastructure📝 🔍None
Allow SDP munging in peerconnection_unittestsGeneral📝 🔍webrtc:414284082
Rename StopDecodeTimer to UpdateDecodeTimeEstimate in VCMTiming.General📝 🔍b/493549134
snap: cache early dtls packets in race conditionTransport📝 🔍webrtc:426480601
Remove all untagged Subscribe methodsGeneral📝 🔍webrtc:465197113
Fix Multiple SSL clocks issue when running PeerConnectionIntegrationTestWithFakeClock.General📝 🔍None
Validate RTP header extension IDs in ParseExtmapTransport📝 🔍b/522284100
Don't initialize jvm in PeerConnectionFactory if it is already initialized.General📝 🔍None
[SCReAM] Self-contain Application-Limited detection via fixed-window acked rateGeneral📝 🔍webrtc:447037083
Cleanup dead code.General📝 🔍webrtc:42225000
Exclude rate_tracker_rust_tests from ASan buildsGeneral📝 🔍chromium:513478482
Remove deprecated symbols from rtc_base and p2pTransport📝 🔍webrtc:465197113webrtc:42225170webrtc:42224904
Use accessors to reach into ASN1_STRINGGeneral📝 🔍chromium:443769299
Change force-test-environment flag to trueGeneral📝 🔍webrtc:521534686
Update RFC8888 feedback_fraction from 0.05 to 0.1 in l4s_test.ccGeneral📝 🔍webrtc:519655843
SetLocalDescription: Avoid redundant offer/answer generationGeneral📝 🔍chromium:40120757
Make RtpHeaderExtensionId(int) explicitGeneral📝 🔍webrtc:514817938
Improve threading annotations in `RenderingTracker`.General📝 🔍b/423646186
Fix double zlep in android/OWNERSInfrastructure📝 🔍None
Centralize shard_timeout=4500 android config in rtc_test definition.General📝 🔍webrtc:524165465
Extract CreateH264ConstrainedBaselineProfileVideo📝 🔍webrtc:521921838
Fix extmap URI validation in SDP parsing and sanitise loggingGeneral📝 🔍webrtc:509982955
Cleanup unused code in test audio ChannelAudio📝 🔍webrtc:42223992
Fix CheckTagAddedToStringInDefaultOnLogMessageAndroid.General📝 🔍webrtc:524165465
Fix webrtc_perf_tests for force-test-envGeneral📝 🔍webrtc:521534686
Remove unused environment_factory dependenciesAPI📝 🔍webrtc:521534686
Consolidate temporal layer limit to kMaxTemporalStreamsTransport📝 🔍chromium:456855150
[RFC8888] Enable ALR probing when Congestion Control Feedback is enabled.Transport📝 🔍webrtc:522844909chromium:523643492
Add Environment-based constructor to DefaultVideoJitterTiming.General📝 🔍b/493549134
Bugfix: Fix declaration order in `ParsedRtcEventLogBuilder`Infrastructure📝 🔍b/423646186
Fix modules_unittests for force-test-env flagGeneral📝 🔍webrtc:521534686
Bugfix: Exclude packet with zero SSRC in GetRtxOsnLoggingStatusGeneral📝 🔍b/423646186
Bugfix: Check RT_X_ header size, not RT_P_ header size.General📝 🔍b/423646186
Run tests on Mac-26 arm64 machines instead of Mac-15.General📝 🔍None
Fix video_tests for force-test-envGeneral📝 🔍webrtc:521534686
Fix many more test binaries for force-test-env flagGeneral📝 🔍webrtc:521534686
Fix audio_engine_tests for force-test-env flagGeneral📝 🔍webrtc:521534686
Restrict max resolution in Vp9FrameBufferPoolGeneral📝 🔍b/509981960
Enforce simulcast RID limits and ignore duplicatesGeneral📝 🔍b/509982146
Fix modules_tests for force-test-env flagVideo📝 🔍webrtc:521534686
Clean up android build targetsInfrastructure📝 🔍webrtc:152419689
Adding dct@ to WebRTC owners.Infrastructure📝 🔍None
Add pre-reviewer skill containing code review guidelines+best practicesGeneral📝 🔍None
stats: use correct IANA registry for SRTP cipherStats📝 🔍webrtc:518266748
Use injected clock in FakePacketTransportGeneral📝 🔍webrtc:42223992
Remove overly verbose DLOG in the ZeroHertzAdapterMode.General📝 🔍b/522251236
Avoid global time function in network_tester toolGeneral📝 🔍webrtc:42223992
[WebRTC] Migrate from Legacy Natives to Proxy NativesGeneral📝 🔍chromium:40253109
Fix rtc_p2p_unittests for force-test-env flagTransport📝 🔍webrtc:521534686
Fix rtc_media_unittests for force-test-env flagGeneral📝 🔍webrtc:521534686
Fix peerconnection_unittests for force-test-envGeneral📝 🔍webrtc:521534686
Sframe: rename Encrypter/Decrypter to Encryptor/DecryptorInfrastructure📝 🔍webrtc:479862368
Update deps of videocodec_test_mediacodecGeneral📝 🔍None
Propagate Environment into fake ice transportTransport📝 🔍webrtc:42223992
p2p: remove deprecated SetIceTiebreakerTransport📝 🔍webrtc:42224914
Move jitter estimation logic from VideoStreamBufferController.General📝 🔍b/493549134
Limit SSRCs in ssrc-group to 32General📝 🔍b/509982617
Fix rtc_pc_unittests for force-test-env flagPeerconnection📝 🔍webrtc:521534686
Make videocodec_test_mediacodec a rtc_testGeneral📝 🔍None
fix SVC tests flakiness on AndroidGeneral📝 🔍None
Add flag to allow enabling the zero hertz feature for non-screenshare content that also contains periods of static video.Video📝 🔍b/522251236
Fix rtc_unittests for force-test-env flagGeneral📝 🔍webrtc:521534686
Integrate `RttSimulator` into video timing simulatorVideo📝 🔍b/423646186
Add documentation on SCReAM v2 implementation differencesGeneral📝 🔍webrtc:447037083
Add jitter estimation logic to `DefaultVideoJitterTiming`.General📝 🔍b/493549134
Bugfix: include `rtx_ssrc` in `all_known_ssrcs_`General📝 🔍b/423646186
Add `RttSimulator`.General📝 🔍b/423646186
Throttle log frequency for RTCP decryption errors.Transport📝 🔍b/367372987
Pace CCFB using actual wire overhead and is_bandwidth_limited statusGeneral📝 🔍webrtc:519655843
Delete ThreadProcessingFakeClock as unusedGeneral📝 🔍webrtc:42223992
Add force-test-environment flag and checksGeneral📝 🔍webrtc:521534686
Use ScopedTaskSafety in WebRtcSessionDescriptionFactoryPeerconnection📝 🔍None
Use CreateTestEnvironment in media testsGeneral📝 🔍None
RtcpRttCalculator bugfix: do NOT reject reports whose dlsr or dlrr ==0.General📝 🔍b/423646186
Fix OOB write in RotateDesktopFrame and DXGI size mismatchSecurity📝 🔍chromium:520199394
Fix possible uaf in WebRtcSessionDescriptionFactory::PostGeneral📝 🔍b/428836165b/515407473
Use std::span in ToRtpCapabilitiesAudio📝 🔍webrtc:514817938
Fix incorrect OwnedFactoryAndThreads teardown sequencePeerconnection📝 🔍b/515407473
Handle possible deadlocks and hangs during PeerConnection teardownGeneral📝 🔍b/515407473
Remove 6 deprecated symbolsGeneral📝 🔍webrtc:42224904
Remove the deprecated libjingle_peerconnection targetGeneral📝 🔍webrtc:463418937
Integrate DefaultVideoJitterTiming into VCMTiming.General📝 🔍b/493549134
Use new RtpHeaderExtensionCapability constructorsGeneral📝 🔍webrtc:514817938
Simplify WaitUntil assertions in testsGeneral📝 🔍None
Don't include private headerGeneral📝 🔍None
Add an allowlist for expand_directoryGeneral📝 🔍None
Add `RtcpRttCalculator`.Video📝 🔍b/423646186
[dcsctp] Treat forward tsn as payload when saving it for later processingGeneral📝 🔍b/510385580
Initialize TaskQueuePacedSender with configuration at constructionGeneral📝 🔍None
Modernize and simplify AudioStateGeneral📝 🔍None
Construct Call on the signaling threadPeerconnection📝 🔍webrtc:42222117
Associate RTX with preceding codec in redesignPeerconnection📝 🔍webrtc:360058654
Remove TaskQueueBase::Current() from Call constructionSecurity📝 🔍None
Hdrext: Replace ABSL_DEPRECATE_AND_INLINE with [[deprecated]]API📝 🔍webrtc:514817938
Audio: Apply ABWENoTWCC trial to ReconfigureBitrateObserverAudio📝 🔍None
Migrate from deprecated SSLFingerprint::CreateUnique* factoriesGeneral📝 🔍None
Simplify RtpTransceiver and BaseChannel construction threadingPeerconnection📝 🔍webrtc:42224170
Make ICE tiebreaker a construction time argument of PortTransport📝 🔍webrtc:42224914
Merge ScopedFakeClock and ScopedBaseFakeClockGeneral📝 🔍webrtc:42223992
fix(test): Handle worktrees in repo root detection scriptsGeneral📝 🔍None
Remove libjingle_peerconnection_apiGeneral📝 🔍webrtc:463418937
Add TargetTransferRate.is_bwe_limited and support in googcc and screamGeneral📝 🔍webrtc:519655843
Add settling delay to CroppingWindowCapturerGeneral📝 🔍chromium:518242046
[WGC] Fix frame size synchronizationGeneral📝 🔍chromium:517727318
Migrate test_support_unittests to rtc_test_suiteGeneral📝 🔍webrtc:498394143
Delete SSLFingerprint factories returning raw pointer with ownershipGeneral📝 🔍None
Move api/stats/OWNERS constraints in the parent folder.API📝 🔍None
Add some sequence checkers to simulator streams.General📝 🔍b/423646186
RtpHeaderExtensionId: Clean up usage in pc/rtp_transceiver_unittest.ccPeerconnection📝 🔍webrtc:42232595
Merge rtc_stats and rtc_stats_api build targets.Stats📝 🔍webrtc:42226139
Add initial DefaultVideoJitterTiming class.Video📝 🔍b/493549134
Delete deprecated test::DirectTransport constructorGeneral📝 🔍webrtc:42223992
Reenable markdown autoformatGeneral📝 🔍chromium:510238003
[visualizer] Add RTCP bitrate time series and packet overhead to total graphsTransport📝 🔍None
PT: Fix test failures and PT mapping conflicts under WebRTC-PayloadTypesInTransportPeerconnection📝 🔍webrtc:360058654
Remove SetOptions and other unused methods from channel interfacesGeneral📝 🔍None
Cleanup non-deprecated test::DirectTransport constructorGeneral📝 🔍webrtc:42225410
Relax BasicPortAllocator to take TaskQueue instead of ThreadGeneral📝 🔍webrtc:42225410
Stop relying on the generic libjingle_peerconnection_api dependency.General📝 🔍webrtc:463418937
Configure render delay constant via constructor of VCMTiming.General📝 🔍b/493549134
Store const audio/video options inside RtpTransceiver on constructionVideo📝 🔍webrtc:42224170
Define spaceship <=> operator for StrongAliasGeneral📝 🔍None
Deprecate implicit conversion from RtpHeaderExtensionId to intGeneral📝 🔍webrtc:514817938
Perform `{Assembled,Rendered}Margin` calculations in ms-level precision.General📝 🔍b/423646186
RtpHeaderExtensionId: Clean up usage in logging, pc, and videoVideo📝 🔍webrtc:42232595
RtpHeaderExtensionId: Clean up usage in pc/media_session_unittest.ccPeerconnection📝 🔍webrtc:42232595
RtpHeaderExtensionId: Clean up usage in various testsGeneral📝 🔍webrtc:42232595
RtpHeaderExtensionId: Clean up usage in tests and enginesGeneral📝 🔍webrtc:42232595
PT: Replicate legacy answer negotiation for directionalityGeneral📝 🔍webrtc:360058654
RtpHeaderExtensionId: Clean up usage in remaining tests and build filesInfrastructure📝 🔍webrtc:42232595
Make Video Encoder V2 config structs classes with getter/setters.Video📝 🔍webrtc:496266459
cleanup: Remove several deprecated symbolsGeneral📝 🔍webrtc:465197113
Fix tests to respect command line field trialsGeneral📝 🔍None
Namespace: Fix tests that didn't wrap properlyGeneral📝 🔍webrtc:42232595
Deprecate VideoFrameMetadata::GetFrameDependenciesGeneral📝 🔍webrtc:515776877
Reply all
Reply to author
Forward
0 new messages