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
  f04b52b4a7
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 <phancke@meta.com>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42786}
This commit is contained in:
Philipp Hancke 2024-08-14 20:35:49 -07:00 committed by WebRTC LUCI CQ
parent b4aba7834e
commit 952c19511f

View File

@ -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;