Prevent delayed FrameDecoded from advancing RTP cleanup epoch FrameDecoded() unwraps a stored uint16_t RTP sequence number relative to the current receive state. If the frame is decoded only after the receive sequence advances by more than half the 16-bit range, the old value can unwrap into the next epoch. PacketBuffer::ClearTo() then advances the cleanup boundary into that future epoch, and subsequent packets from the current epoch are dropped. Use PeekUnwrap() so delayed decode feedback cannot modify the receive unwrapper. If the resulting cleanup boundary is ahead of newest_media_seq_num_, remove only that frame's history entries and skip both PacketBuffer and RtpFrameReferenceFinder cleanup. Track the newest-media watermark on the H.264/H.265 receive path as well, so the same validation applies on every codec path. Add focused RtpVideoStreamReceiver2 coverage and an end-to-end VP9 flexible-mode regression test. R=asapersson@webrtc.org Bug: webrtc:556950523 Change-Id: I673ccb0397cb9df891cc4882503c0df5c926d632 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/499540 Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Åsa Persson <asapersson@webrtc.org> Cr-Commit-Position: refs/heads/main@{#48529}
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.
See here for instructions on how to get started developing with the native code.
Authoritative list of directories that contain the native API header files.