Pass picture_id from generic packetizer through codec-specific field

To free up RtpVideoHeader::generic field for codec agnostic details
from an rtp header extension.

Bug: webrtc:10342
Change-Id: I7b9d869b2ecfedb96dfd860be47ed8dffa058749
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166175
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30396}
This commit is contained in:
Danil Chapovalov
2020-01-28 18:36:57 +01:00
committed by Commit Bot
parent f417238217
commit b6bf0b2546
9 changed files with 48 additions and 32 deletions

View File

@ -240,15 +240,10 @@ void RtpPayloadParams::SetCodecSpecific(RTPVideoHeader* rtp_video_header,
rtp_video_header->frame_marking.tl0_pic_idx = state_.tl0_pic_idx;
}
}
// There are currently two generic descriptors in WebRTC. The old descriptor
// can not share a picture id space between simulcast streams, so we use the
// |picture_id| in this case. We let the |picture_id| tag along in |frame_id|
// until the old generic format can be removed.
// TODO(philipel): Remove this when the new generic format has been fully
// implemented.
if (generic_picture_id_experiment_ &&
rtp_video_header->codec == kVideoCodecGeneric) {
rtp_video_header->generic.emplace().frame_id = state_.picture_id;
rtp_video_header->video_type_header.emplace<RTPVideoHeaderLegacyGeneric>()
.picture_id = state_.picture_id;
}
}