Add Generic frame descritpor header extension
to list of extensions supported by RtpPacket. Bug: webrtc:9361 Change-Id: Iabee824381be3776e17e95f32507058607fc0bc8 Reviewed-on: https://webrtc-review.googlesource.com/85346 Reviewed-by: Philip Eliasson <philipel@webrtc.org> Reviewed-by: Alex Loiko <aleloi@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23788}
This commit is contained in:

committed by
Commit Bot

parent
deee55b3d5
commit
916ec7dadf
@ -110,6 +110,7 @@ enum RTPExtensionType {
|
||||
kRtpExtensionRtpStreamId,
|
||||
kRtpExtensionRepairedRtpStreamId,
|
||||
kRtpExtensionMid,
|
||||
kRtpExtensionGenericFrameDescriptor,
|
||||
kRtpExtensionNumberOfExtensions // Must be the last entity in the enum.
|
||||
};
|
||||
|
||||
|
@ -44,6 +44,8 @@ constexpr uint8_t kFlageXtendedOffset = 0x02;
|
||||
// +---------------+
|
||||
// | ... |
|
||||
// +-+-+-+-+-+-+-+-+
|
||||
constexpr RTPExtensionType RtpGenericFrameDescriptorExtension::kId;
|
||||
constexpr char RtpGenericFrameDescriptorExtension::kUri[];
|
||||
|
||||
bool RtpGenericFrameDescriptorExtension::Parse(
|
||||
rtc::ArrayView<const uint8_t> data,
|
||||
|
@ -14,13 +14,16 @@
|
||||
#include <stdint.h>
|
||||
|
||||
#include "api/array_view.h"
|
||||
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||
#include "modules/rtp_rtcp/source/rtp_generic_frame_descriptor.h"
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
class RtpGenericFrameDescriptorExtension {
|
||||
public:
|
||||
// TODO(bugs.webrtc.org/9361): Add kId and kUri to make it extension trait.
|
||||
static constexpr RTPExtensionType kId = kRtpExtensionGenericFrameDescriptor;
|
||||
static constexpr char kUri[] =
|
||||
"http://www.webrtc.org/experiments/rtp-hdrext/generic-frame-descriptor";
|
||||
|
||||
static bool Parse(rtc::ArrayView<const uint8_t> data,
|
||||
RtpGenericFrameDescriptor* descriptor);
|
||||
|
@ -10,6 +10,7 @@
|
||||
|
||||
#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
|
||||
|
||||
#include "modules/rtp_rtcp/source/rtp_generic_frame_descriptor_extension.h"
|
||||
#include "modules/rtp_rtcp/source/rtp_header_extensions.h"
|
||||
#include "rtc_base/arraysize.h"
|
||||
#include "rtc_base/checks.h"
|
||||
@ -40,6 +41,7 @@ constexpr ExtensionInfo kExtensions[] = {
|
||||
CreateExtensionInfo<RtpStreamId>(),
|
||||
CreateExtensionInfo<RepairedRtpStreamId>(),
|
||||
CreateExtensionInfo<RtpMid>(),
|
||||
CreateExtensionInfo<RtpGenericFrameDescriptorExtension>(),
|
||||
};
|
||||
|
||||
// Because of kRtpExtensionNone, NumberOfExtension is 1 bigger than the actual
|
||||
|
@ -467,6 +467,10 @@ void RtpHeaderParser::ParseOneByteExtensionHeader(
|
||||
header->extension.mid.Set(rtc::MakeArrayView(ptr, len + 1));
|
||||
break;
|
||||
}
|
||||
case kRtpExtensionGenericFrameDescriptor:
|
||||
RTC_LOG(WARNING)
|
||||
<< "RtpGenericFrameDescriptor unsupported by rtp header parser.";
|
||||
break;
|
||||
case kRtpExtensionNone:
|
||||
case kRtpExtensionNumberOfExtensions: {
|
||||
RTC_NOTREACHED() << "Invalid extension type: " << type;
|
||||
|
@ -9,6 +9,7 @@
|
||||
*/
|
||||
|
||||
#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
|
||||
#include "modules/rtp_rtcp/source/rtp_generic_frame_descriptor_extension.h"
|
||||
#include "modules/rtp_rtcp/source/rtp_header_extensions.h"
|
||||
#include "modules/rtp_rtcp/source/rtp_packet_received.h"
|
||||
|
||||
@ -109,6 +110,11 @@ void FuzzOneInput(const uint8_t* data, size_t size) {
|
||||
packet.GetExtension<RtpMid>(&mid);
|
||||
break;
|
||||
}
|
||||
case kRtpExtensionGenericFrameDescriptor: {
|
||||
RtpGenericFrameDescriptor descriptor;
|
||||
packet.GetExtension<RtpGenericFrameDescriptorExtension>(&descriptor);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user