Index: webrtc/modules/rtp_rtcp/source/rtp_utility.cc |
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_utility.cc b/webrtc/modules/rtp_rtcp/source/rtp_utility.cc |
index def431f1709499993bac608a993aa0c49e33bc1b..1c12c89c9276222334237f0509ef2953efa92513 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtp_utility.cc |
+++ b/webrtc/modules/rtp_rtcp/source/rtp_utility.cc |
@@ -254,6 +254,10 @@ |
header->extension.playout_delay.min_ms = -1; |
header->extension.playout_delay.max_ms = -1; |
+ // May not be present in packet. |
+ header->extension.hasVideoContentType = false; |
+ header->extension.videoContentType = VideoContentType::UNSPECIFIED; |
+ |
if (X) { |
/* RTP header extension, RFC 3550. |
0 1 2 3 |
@@ -446,6 +450,25 @@ |
max_playout_delay * PlayoutDelayLimits::kGranularityMs; |
break; |
} |
+ case kRtpExtensionVideoContentType: { |
+ if (len != 0) { |
+ LOG(LS_WARNING) << "Incorrect video content type len: " << len; |
+ return; |
+ } |
+ // 0 1 |
+ // 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 |
+ // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
+ // | ID | len=0 | Content type | |
+ // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
+ |
+ if (ptr[0] < |
+ static_cast<uint8_t>(VideoContentType::TOTAL_CONTENT_TYPES)) { |
+ header->extension.hasVideoContentType = true; |
+ header->extension.videoContentType = |
+ static_cast<VideoContentType>(ptr[0]); |
+ } |
+ break; |
+ } |
case kRtpExtensionNone: |
case kRtpExtensionNumberOfExtensions: { |
RTC_NOTREACHED() << "Invalid extension type: " << type; |