From 952c19511f335e008d044e44206ab364f2108b75 Mon Sep 17 00:00:00 2001 From: Philipp Hancke Date: Wed, 14 Aug 2024 20:35:49 -0700 Subject: [PATCH] Document when the dependency descriptor can be negotiated but not sent This can happen when VP8 simulcast is negotiated while two-byte header extensions are not negotiated via extmap-allow-mixed. For VP8 the DD extension would be 23 bytes long which exceeds the maximum size of 15 bytes for a one-byte header extension. To test, revert https://github.com/fippo/simulcast-playground/commit/f04b52b4a782addc97fd0a74923cda30122f4e78 and test using VP8. Note that this works for VP9, AV1, H264 out of the box. BUG=webrtc:40191093 Change-Id: I2f5d04d8b58b71d32547b06fab6b9a9006df9f1a Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/359623 Commit-Queue: Philipp Hancke Reviewed-by: Danil Chapovalov Reviewed-by: Harald Alvestrand Cr-Commit-Position: refs/heads/main@{#42786} --- modules/rtp_rtcp/source/rtp_sender_video.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/rtp_rtcp/source/rtp_sender_video.cc b/modules/rtp_rtcp/source/rtp_sender_video.cc index 2ca5e4bb1e..fc39225d7e 100644 --- a/modules/rtp_rtcp/source/rtp_sender_video.cc +++ b/modules/rtp_rtcp/source/rtp_sender_video.cc @@ -566,6 +566,8 @@ bool RTPSenderVideo::SendVideo(int payload_type, // Disable attaching dependency descriptor to delta packets (including // non-first packet of a key frame) when it wasn't attached to a key frame, // as dependency descriptor can't be usable in such case. + // This can also happen when the descriptor is larger than 15 bytes and + // two-byte header extensions are not negotiated using extmap-allow-mixed. RTC_LOG(LS_WARNING) << "Disable dependency descriptor because failed to " "attach it to a key frame."; video_structure_ = nullptr;