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,
|
kRtpExtensionRtpStreamId,
|
||||||
kRtpExtensionRepairedRtpStreamId,
|
kRtpExtensionRepairedRtpStreamId,
|
||||||
kRtpExtensionMid,
|
kRtpExtensionMid,
|
||||||
|
kRtpExtensionGenericFrameDescriptor,
|
||||||
kRtpExtensionNumberOfExtensions // Must be the last entity in the enum.
|
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(
|
bool RtpGenericFrameDescriptorExtension::Parse(
|
||||||
rtc::ArrayView<const uint8_t> data,
|
rtc::ArrayView<const uint8_t> data,
|
||||||
|
@ -14,13 +14,16 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#include "api/array_view.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"
|
#include "modules/rtp_rtcp/source/rtp_generic_frame_descriptor.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
class RtpGenericFrameDescriptorExtension {
|
class RtpGenericFrameDescriptorExtension {
|
||||||
public:
|
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,
|
static bool Parse(rtc::ArrayView<const uint8_t> data,
|
||||||
RtpGenericFrameDescriptor* descriptor);
|
RtpGenericFrameDescriptor* descriptor);
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
|
#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_header_extensions.h"
|
||||||
#include "rtc_base/arraysize.h"
|
#include "rtc_base/arraysize.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
@ -40,6 +41,7 @@ constexpr ExtensionInfo kExtensions[] = {
|
|||||||
CreateExtensionInfo<RtpStreamId>(),
|
CreateExtensionInfo<RtpStreamId>(),
|
||||||
CreateExtensionInfo<RepairedRtpStreamId>(),
|
CreateExtensionInfo<RepairedRtpStreamId>(),
|
||||||
CreateExtensionInfo<RtpMid>(),
|
CreateExtensionInfo<RtpMid>(),
|
||||||
|
CreateExtensionInfo<RtpGenericFrameDescriptorExtension>(),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Because of kRtpExtensionNone, NumberOfExtension is 1 bigger than the actual
|
// 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));
|
header->extension.mid.Set(rtc::MakeArrayView(ptr, len + 1));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case kRtpExtensionGenericFrameDescriptor:
|
||||||
|
RTC_LOG(WARNING)
|
||||||
|
<< "RtpGenericFrameDescriptor unsupported by rtp header parser.";
|
||||||
|
break;
|
||||||
case kRtpExtensionNone:
|
case kRtpExtensionNone:
|
||||||
case kRtpExtensionNumberOfExtensions: {
|
case kRtpExtensionNumberOfExtensions: {
|
||||||
RTC_NOTREACHED() << "Invalid extension type: " << type;
|
RTC_NOTREACHED() << "Invalid extension type: " << type;
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
|
#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_header_extensions.h"
|
||||||
#include "modules/rtp_rtcp/source/rtp_packet_received.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);
|
packet.GetExtension<RtpMid>(&mid);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case kRtpExtensionGenericFrameDescriptor: {
|
||||||
|
RtpGenericFrameDescriptor descriptor;
|
||||||
|
packet.GetExtension<RtpGenericFrameDescriptorExtension>(&descriptor);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user