Release notes for WebRTC in Chromium M150

57 views
Skip to first unread message

Harald Alvestrand

unread,
Jun 15, 2026, 7:18:00 AM (8 days ago) Jun 15
to discuss...@googlegroups.com

WebRTC Changelog M150 (7827..7871)

This release contains 174 commits by 31 authors.

Summary (AI-generated)

  • Security: Fixed several vulnerabilities including an OOB write in RotateDesktopFrame (chromium:522134569), and Wayland capture issues (integer overflow in cursor validation chromium:513054275, and buffer geometry validation chromium:509294495).
  • Network Thread Migration: Continued efforts to move packet handling to the network thread, including audio/video packet demuxing, Call::OnSentPacket enforcement, and Call::ReceiveStats association.
  • Payload Type Redesign: Made significant progress on the payload type allocation redesign, implementing late allocation for video, unifying audio RED linking, and introducing PayloadTypeSuggester.
  • SCReAMv2 Congestion Control: Landed numerous improvements to SCReAMv2, including asymmetric step filter for loss rate, reference window backoff inline calculations, and improved handling of reordered packets.
  • Cryptex & SFrame: Implemented cryptex header extension negotiation and added SFrame packet buffer support for RTP-level frame assembly.
  • API & Modernization: Introduced StrongAlias for RTP header extension IDs and exposed options to prefer SRTP GCM cipher suites in the iOS SDK.

Categories

CategoryChanges
API3
Audio10
General115
Infrastructure3
Peerconnection6
Security4
Stats1
Transport17
Video15

Detailed List of Changes (newest first)

Change DescriptionCategoryLinksBug
[M150] Fix OOB write in RotateDesktopFrame and DXGI size mismatchSecurity📝 🔍chromium:522134569chromium:520199394
[M150] [WGC] Fix frame size synchronizationGeneral📝 🔍chromium:520652713chromium:517727318
[SCReAMv2] Inline reference window backoff calculation due to delay in ScreamV2General📝 🔍webrtc:447037083
Ignore internal transport packets in DatagramConnectionTransport📝 🔍None
SCReAM v2: Parse TransportPacketsFeedback once into ScreamFeedbackGeneral📝 🔍webrtc:447037083
PT: Fix video and audio RED codec handling in TypedCodecVendor and CodecVendorAudio📝 🔍webrtc:360058654
Refactor state caching for SctpDataChannel observersPeerconnection📝 🔍webrtc:510487699
Fix race condition in unsignaled stream creation when worker!=networkTransport📝 🔍webrtc:42222117
Add SFrame packet buffer for RTP-level frame assemblyTransport📝 🔍webrtc:479862368
Rename LOG_ERROR to RTC_LOG_ERRORGeneral📝 🔍webrtc:517208673
Make video_options_ const in SdpOfferAnswerHandlerGeneral📝 🔍None
Fix GetSingleActiveLayerPixelsGeneral📝 🔍b/517029078b/507191231webrtc:510393737
Fix race condition in CroppingWindowCapturerGeneral📝 🔍chromium:517207235
Make audio_options_ const in SdpOfferAnswerHandlerGeneral📝 🔍None
Fix inference of scalability modeGeneral📝 🔍b/517029078b/507191231webrtc:510393737
Delete legacy_delay_estimator dead codeGeneral📝 🔍None
Clean up the finch experiment kUseHeuristicForFindingEditorGeneral📝 🔍chromium:409473386
Mark ios_force_software_aec_HACK as deprecatedGeneral📝 🔍webrtc:42233827
Apply global audio options at the engine levelAudio📝 🔍webrtc:42224170
Cut lower than threshold audio at the end (not only at the beginning).Audio📝 🔍None
Remove unnecessary using webrtc:: directivesGeneral📝 🔍webrtc:42232595
HeaderExtensionId: Deprecate header extension functions taking intAPI📝 🔍webrtc:514817938
SCReAMv2: Replace EWMA loss rate filter with asymmetric step filterGeneral📝 🔍webrtc:447037083
Polish deprecated section in the style guideGeneral📝 🔍None
Fix potential buffer underflow in handling of STUN_ATTR_GOOG_MISC_INFOGeneral📝 🔍b/513584780
rtc_event_log_visualizer: Fix crash due to infinite queue delayGeneral📝 🔍webrtc:436707095
Include Sframe library in libwebrtcInfrastructure📝 🔍webrtc:479862368
Remove VirtualSocketServer dependency on FakeClock as unusedGeneral📝 🔍webrtc:42223992
Use StrongAlias for RTP header extension identification.API📝 🔍webrtc:514817938
SCReAMv2: Visualize newly lost, recovered, and CE marked packet eventsGeneral📝 🔍webrtc:436707095
pc: ignore DTLS-decrypted packets in RtpTransport::OnReadPacketTransport📝 🔍webrtc:517079993
Single threaded RtpTransceiver constructionTransport📝 🔍webrtc:42224170
MediaEngine: pass parameters-changed callback at constructionGeneral📝 🔍webrtc:42222804
PT redesign: handle raw, change allocation and update golden testsVideo📝 🔍webrtc:360058654webrtc:412904801
Bind default sink to existing unsignaled receive streamTransport📝 🔍None
Allow media channel creation from the signaling threadPeerconnection📝 🔍webrtc:42222804
NetEq: Align correlation buffer size in Merge with DspHelper expectationsGeneral📝 🔍None
Enable dynamic speed controller by default, with new AV1 defaults.Video📝 🔍webrtc:443906251
Add testing.md to project GEMINI.mdInfrastructure📝 🔍None
refactor(pc): unify audio RED linking in payload type redesignAudio📝 🔍webrtc:360058654
Restrict number of actions in VP9 fuzzerVideo📝 🔍webrtc:516663678
Iterate over all VP9 GoF `pid_diff`s to determine frame references.Video📝 🔍None
Remove obsolete import of //build/config/chromeos/ui_mode.gniGeneral📝 🔍b:354842935
Implement cryptex header extension negotiationGeneral📝 🔍webrtc:455813732
Update channel constructors to support off-thread creationAudio📝 🔍webrtc:42222804
Validate the length of `num_ref_pics` with `kMaxVp9RefPics` instead of `EncodedFrame::kMaxFrameReferences`.General📝 🔍chromium:454367825
Initialize more RtpSender parameters via the constructorGeneral📝 🔍None
Add fake clock to VideoCodecTextFixtureImpl in non-relatime mode.General📝 🔍webrtc:443906251
Refactor ChannelReceive to accept PacketRouter in constructorGeneral📝 🔍None
Use fake clock for codecs in VideoCodecTester.General📝 🔍webrtc:443906251
Make dependencies optional in VideoFrameMetadataGeneral📝 🔍webrtc:515776877
Remove unused RtpRtcpInterface::SetLocalSsrc methodGeneral📝 🔍webrtc:41480926webrtc:42221687
CryptoOptions: expose srtpPreferGcmCryptoSuites in iOS SDKGeneral📝 🔍webrtc:42221827
Add a "deep parse" mode to Av1QpParser returning the true average QP.Video📝 🔍webrtc:496266459
In ApmTest use SimulatedTimeController to freeze the timeGeneral📝 🔍webrtc:42223992
Refactor vp9 low tier logic when dynamic speed is enabled.Video📝 🔍webrtc:443906251
AudioProcessing: Add integration tests for NeuralResidualEchoEstimatorGeneral📝 🔍webrtc:442444736
Fix signed integer overflow in video codec testerVideo📝 🔍webrtc:14852
AV1 encoder: Avoid holding reference to environment.Video📝 🔍None
Remove deprecated OnDroppedFrame and make OnFrameDropped pure virtual.General📝 🔍webrtc:467444018
Fuzz WebRTC-LibvpxVp9Encoder-PostEncodeFrameDrop field trial in vp9_encoder_references_fuzzerGeneral📝 🔍chromium:515855651webrtc:500517546
CryptoOptions: add boolean to prefer SRTP GCM cipher suitesGeneral📝 🔍webrtc:42221827
Style cleanup Thread and its testsGeneral📝 🔍None
Payload Type Redesign: Progress and fixesPeerconnection📝 🔍webrtc:360058654
Fix potential UAF in StunDictionaryWriter::CreateDelta + heap exhaustion in StunDictionaryView::ApplyDeltaTransport📝 🔍None
Add SSRC tracking and receive sink clearing scaffoldingGeneral📝 🔍webrtc:42222117
Add better checks for temporal/spatial bounds in EncoderBitrateAdjuster.Security📝 🔍webrtc:514671098
Change WebRtcVideoReceiveChannel decoder_factory annotationGeneral📝 🔍None
Unify worker and network threads in full stack testsGeneral📝 🔍webrtc:514760674
Instruct agent to read agents/README.md on startupGeneral📝 🔍None
Fix RFC 8888 feedback reordering timeline resetGeneral📝 🔍webrtc:515090595
Remove redundant smoothed RTT testGeneral📝 🔍webrtc:447037083
Unrestrict visibility of video_codec_testerGeneral📝 🔍webrtc:14852
logging: Fix RFC 8888 congestion control feedback reordering parsingGeneral📝 🔍webrtc:515090595
Add g3doc file for v2 video encoder apiVideo📝 🔍webrtc:496266459
dtls-in-stun: Remove the period retransmitGeneral📝 🔍webrtc:367395350
Remove obsolete ReconfigureForTesting from AudioReceiveStreamImplGeneral📝 🔍None
Migrate unit tests to use CreateTestEnvironmentGeneral📝 🔍webrtc:515090586
Update metrics in video codec testerVideo📝 🔍webrtc:14852
Move libgav1-based Av1QpParser to modules/video_coding/utility.General📝 🔍webrtc:496266459
Reorder remote stream updates in BaseChannel::UpdateRemoteStreams_wGeneral📝 🔍webrtc:42224170
Explicitly disable DTLS in STUN if not using BoringSSLTransport📝 🔍webrtc:367395350
Record DTLS handshake errors without referencing the PeerConnection objectTransport📝 🔍webrtc:514547040
Use injected rather than global clock in test::VideoProcessorGeneral📝 🔍webrtc:42223992
Reject stale BUNDLE MIDs missing from descriptionsGeneral📝 🔍webrtc:514442582
Reinitialize mono push resamplerGeneral📝 🔍webrtc:514442562
RTP Header Extension: record redefinitions and support error returnTransport📝 🔍webrtc:504685269
Return InitEncode errors from simulcast adapterGeneral📝 🔍webrtc:514425860
Redesign: Implement RTX PT convention and enhance video codec supportVideo📝 🔍webrtc:360058654
Add nullability annotations to Call receive classesGeneral📝 🔍None
Deprecate old QueryCodecSupport interfaces in MediaCapabilitiesGeneral📝 🔍chromium:505034803
sdp: fix sdp munging detection edge caseGeneral📝 🔍chromium:512953564
Payload type allocation: improve stability and test compatibilityGeneral📝 🔍webrtc:360058654
Initialize FrameInfo rotation in GenericDecoderTestGeneral📝 🔍webrtc:514423244
Move audio and video packet demuxing to the network threadTransport📝 🔍webrtc:42222117
Handle reordered packets and random loss in ScreamV2General📝 🔍webrtc:447037083
Support packet reordering in CcFeedbackGeneratorGeneral📝 🔍webrtc:436707095
Add GetStats to MockAudioDevice.General📝 🔍b/496439120
Add RtpDemuxer::RemoveAllSinks and tests.General📝 🔍webrtc:42222117
Refresh style guideInfrastructure📝 🔍b/509430854
In video_frame.cc, add a null check for the result of VideoFrameBuffer::ToI420() within NativeToJavaVideoFrame to prevent crashes if the conversion fails.General📝 🔍webrtc:503507701
Cap RTCConfiguration certificates and enforce 32-bit overflow checksTransport📝 🔍chromium:513154132chromium:513154132
Wayland capture: Fix integer overflow in cursor bitmap validationSecurity📝 🔍chromium:513054275
Validate CGImage dimensions in MouseCursorMonitorMacGeneral📝 🔍chromium:513268100
Fix race conditions in RTCPeerConnectionFactoryTestsPeerconnection📝 🔍None
Synchronize capture queue before verifying mock expectationsGeneral📝 🔍None
Guard RestoreTokenManager add/reads with MutexGeneral📝 🔍chromium:513049286
[PT Redesign] Implement late payload type allocation for video.Audio📝 🔍webrtc:360058654
srtp: add UseCryptex API to SrtpSession and SrtpTransportGeneral📝 🔍webrtc:455813732
Improve SrtpSession thread safety and modernize sequence checkingGeneral📝 🔍webrtc:361372443
Minor updates to WebRTC Video EngineVideo📝 🔍None
Use real rather than simulated task queues in rtp replayer fuzzersTransport📝 🔍chromium:510952673
Simplify WebRTC Voice Engine, remove `friend`.Audio📝 🔍None
Remove RtpPacketSinkInterface inheritance from ReceiveStatisticsImplGeneral📝 🔍None
Make some VideoReceiveStream2 and RtpVideoStreamReceiver2 members constGeneral📝 🔍webrtc:42222117
Fix UB when comparing two empty webrtc::Buffer objectsGeneral📝 🔍webrtc:42224551
Replace UsedPayloadTypes with PayloadTypeSuggester in CodecVendor.Peerconnection📝 🔍webrtc:360058654
Add documentation for testing best practice in WebRTCGeneral📝 🔍None
Add Reported lost time series to ECN feedback graph in event log visualizerGeneral📝 🔍webrtc:436707095
Configure RTCP mode during RTP/RTCP module constructionGeneral📝 🔍webrtc:42222117
Implement support machinery for payload type allocation redesign.Video📝 🔍webrtc:42225436
Consolidate remote SSRC representation in audio receive componentsAudio📝 🔍webrtc:42222117
Add IsEmpty to RtpStreamReceiverController and RtpDemuxerGeneral📝 🔍webrtc:42222117
Move integration test helper functions from .h to .ccGeneral📝 🔍None
Disallow RTP header extension ID of 0Transport📝 🔍chromium:506682780
Rename target_delay to stats_target_delay in VideoDelayTimings.General📝 🔍b/493549134
Delete workaround Thread implementation that do not set self as TaskQueueGeneral📝 🔍webrtc:42221679
Check validity of RTP header extenision ID at constructionTransport📝 🔍chromium:506682780
Detect codec collisions between audio and video sectionsAudio📝 🔍webrtc:42224689
Adds rust version of webrtc::RateTrackerGeneral📝 🔍webrtc:416446214
Rely on TaskQueueBase interface in modules/rtp_rtcpGeneral📝 🔍webrtc:42225410
Move MaxWaitingTime and associated state to FrameDecodeTiming.General📝 🔍b/493549134
Update field-trials.md for clarity and freshnessGeneral📝 🔍b/499941267
Update Call::ReceiveStats to be associated with the network threadVideo📝 🔍webrtc:42222117
sdp: introduce MCD::AttributeLevel for session/media-level attrsGeneral📝 🔍webrtc:455813732
Add a missing include on androidGeneral📝 🔍chromium:503250165
Add OnFrameDropped override to vp9 encoder fuzzer.Video📝 🔍webrtc:467444018
Move signaling safety flag into SctpDataChannel and clarify its purposePeerconnection📝 🔍webrtc:510487699
Prevent wrong scalability mode from being used when base layer inactive.General📝 🔍webrtc:510393737
Use TimeController instead of FakeClock in fuzzers/RtpReplayerGeneral📝 🔍webrtc:42223992
Refactor pc/media_session_unittest.cc and introduce Yoda-test swapping tool.API📝 🔍None
Remove rusty base64 implementationGeneral📝 🔍webrtc:416446214
LNA: Return after unexpected permission callbackGeneral📝 🔍chromium:421223919
ScreamV2, add application limited stateGeneral📝 🔍webrtc:447037083
snap: add RTCConfiguration for enabling SNAPGeneral📝 🔍webrtc:426480601
In SctpDataChannel use plain bool as safety flag.General📝 🔍chromium:504716948
Remove arm32 bots and redundant arm64 botsGeneral📝 🔍webrtc:427152624
Remove redundant android_compile_arm64_rel bot from CQGeneral📝 🔍webrtc:427152624
Fix misformated tables in style guideGeneral📝 🔍chromium:510238003
Deprecate ArrayView aliasGeneral📝 🔍webrtc:439801349
Add rust versions of Timestamp and TimeDeltaGeneral📝 🔍webrtc:416446214
Activate corruption detection tests.General📝 🔍webrtc:358039777
sdp munging: detect modification of msid stream/trackGeneral📝 🔍webrtc:414284082
Wayland capture: validate buffer geometry before pixel copySecurity📝 🔍chromium:509294495
Remove virtual specifier from RenderTime and MaxWaitingTime in VCMTimingGeneral📝 🔍b/493549134
Migrate android bots from Pixel2 to Pixel7General📝 🔍webrtc:427152624
Cleanup: Iterative removal of matured deprecated symbols (Batch 3)General📝 🔍webrtc:465197113
Fix deps for ssl_header target and add missing frameworks for sdk targets.General📝 🔍webrtc:251890128
pc: move PeerConnectionInterface implementation to the right fileGeneral📝 🔍None
Switch android more config from arm32 to arm64General📝 🔍webrtc:427152624
Introduce CodecConfiguration and ResiliencyInfo in pc/Audio📝 🔍webrtc:360058654
Add changelog generator skillGeneral📝 🔍webrtc:465491622
Export GetLoopbackIP to fix WebRTC roll into ChromiumGeneral📝 🔍webrtc:251890128
Add GetStats to AudioInput in Android ADMStats📝 🔍b/384830998
Use Str instead of quotes in DEPSGeneral📝 🔍None
Require HasChannel calls to be called on the signaling threadTransport📝 🔍webrtc:475126742
CHECK on adding STUN attributes after signature is applied.General📝 🔍chromium:504567957
Migrate test_support_unittests to rtc_test_suiteGeneral📝 🔍webrtc:498394143
Support std::string_view in RTC_LOG macrosGeneral📝 🔍webrtc:42234461
Restrict rtc_test_suite to only allow tests and forward shard_timeout in rtc_cc_testGeneral📝 🔍webrtc:498394143
Use AbslStringify in StringBuilder for custom typesGeneral📝 🔍None
Use Pixel 7 phones to run WebRTC Android tests.General📝 🔍webrtc:427152624
Use ip_address helpers to get loopback IP.General📝 🔍webrtc:251890128
Enforce consistent network thread usage in Call::OnSentPacketTransport📝 🔍webrtc:42222117
Reply all
Reply to author
Forward
0 new messages