Create a VideoFrameTrackingId RTP header extension.

Bug: webrtc:12594
Change-Id: I518b549b18143f4711728b4637a4689772474c45
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/212084
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/master@{#33567}
This commit is contained in:
Jeremy Leconte
2021-03-17 17:01:31 +01:00
committed by Commit Bot
parent cbd6156591
commit 4f88a9d1c3
9 changed files with 85 additions and 1 deletions

View File

@ -823,4 +823,32 @@ bool InbandComfortNoiseExtension::Write(rtc::ArrayView<uint8_t> data,
return true;
}
// VideoFrameTrackingIdExtension
//
// 0 1 2
// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// | ID | L=1 | video-frame-tracking-id |
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
constexpr RTPExtensionType VideoFrameTrackingIdExtension::kId;
constexpr uint8_t VideoFrameTrackingIdExtension::kValueSizeBytes;
constexpr const char VideoFrameTrackingIdExtension::kUri[];
bool VideoFrameTrackingIdExtension::Parse(rtc::ArrayView<const uint8_t> data,
uint16_t* video_frame_tracking_id) {
if (data.size() != kValueSizeBytes) {
return false;
}
*video_frame_tracking_id = ByteReader<uint16_t>::ReadBigEndian(data.data());
return true;
}
bool VideoFrameTrackingIdExtension::Write(rtc::ArrayView<uint8_t> data,
uint16_t video_frame_tracking_id) {
RTC_DCHECK_EQ(data.size(), kValueSizeBytes);
ByteWriter<uint16_t>::WriteBigEndian(data.data(), video_frame_tracking_id);
return true;
}
} // namespace webrtc