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 4b5ecfa6983d61cba3ebaf9adc74496858c7f4bf..d09ec7a4fd729451acdddf85f87750541d33f85d 100644 |
--- a/webrtc/modules/rtp_rtcp/source/rtp_utility.cc |
+++ b/webrtc/modules/rtp_rtcp/source/rtp_utility.cc |
@@ -249,6 +249,9 @@ bool RtpHeaderParser::Parse(RTPHeader* header, |
header->extension.has_video_timing = false; |
header->extension.video_timing = {0u, 0u, 0u, 0u, 0u, 0u, false}; |
+ // May not be present in packet. |
+ header->extension.has_frame_marks = false; |
+ |
if (X) { |
/* RTP header extension, RFC 3550. |
0 1 2 3 |
@@ -483,6 +486,15 @@ void RtpHeaderParser::ParseOneByteExtensionHeader( |
header->extension.mid.Set(rtc::MakeArrayView(ptr, len + 1)); |
break; |
} |
+ case kRtpExtensionFrameMarking: { |
+ if (!FrameMarking::Parse(rtc::MakeArrayView(ptr, len + 1), |
+ &header->extension.frame_marks)) { |
+ LOG(LS_WARNING) << "Incorrect frame marking extension"; |
+ return; |
+ } |
+ header->extension.has_frame_marks = true; |
+ break; |
+ } |
case kRtpExtensionNone: |
case kRtpExtensionNumberOfExtensions: { |
RTC_NOTREACHED() << "Invalid extension type: " << type; |