Deduplicate set of the rtp header extension uri constants

Bug: webrtc:7472
Change-Id: Ic0b4f2cc3374ba70a043310b5046d8bf91f0acbe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231949
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#34990}
This commit is contained in:
Danil Chapovalov
2021-09-14 12:58:51 +02:00
committed by WebRTC LUCI CQ
parent dc8fc72204
commit d0321c5e5a
20 changed files with 205 additions and 129 deletions

View File

@ -16,8 +16,11 @@
#include <string>
#include <vector>
#include "absl/base/attributes.h"
#include "absl/strings/string_view.h"
#include "api/array_view.h"
#include "api/rtp_headers.h"
#include "api/rtp_parameters.h"
#include "api/video/color_space.h"
#include "api/video/video_content_type.h"
#include "api/video/video_rotation.h"
@ -31,8 +34,11 @@ class AbsoluteSendTime {
using value_type = uint32_t;
static constexpr RTPExtensionType kId = kRtpExtensionAbsoluteSendTime;
static constexpr uint8_t kValueSizeBytes = 3;
static constexpr const char kUri[] =
static constexpr ABSL_DEPRECATED("Use Uri()") const char kUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time";
static constexpr absl::string_view Uri() {
return RtpExtension::kAbsSendTimeUri;
}
static bool Parse(rtc::ArrayView<const uint8_t> data, uint32_t* time_24bits);
static size_t ValueSize(uint32_t time_24bits) { return kValueSizeBytes; }
@ -50,8 +56,11 @@ class AbsoluteCaptureTimeExtension {
static constexpr uint8_t kValueSizeBytes = 16;
static constexpr uint8_t kValueSizeBytesWithoutEstimatedCaptureClockOffset =
8;
static constexpr const char kUri[] =
static constexpr ABSL_DEPRECATED("Use Uri()") const char kUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time";
static constexpr absl::string_view Uri() {
return RtpExtension::kAbsoluteCaptureTimeUri;
}
static bool Parse(rtc::ArrayView<const uint8_t> data,
AbsoluteCaptureTime* extension);
@ -64,8 +73,11 @@ class AudioLevel {
public:
static constexpr RTPExtensionType kId = kRtpExtensionAudioLevel;
static constexpr uint8_t kValueSizeBytes = 1;
static constexpr const char kUri[] =
"urn:ietf:params:rtp-hdrext:ssrc-audio-level";
static constexpr ABSL_DEPRECATED("Use Uri()") const
char kUri[] = "urn:ietf:params:rtp-hdrext:ssrc-audio-level";
static constexpr absl::string_view Uri() {
return RtpExtension::kAudioLevelUri;
}
static bool Parse(rtc::ArrayView<const uint8_t> data,
bool* voice_activity,
@ -82,8 +94,11 @@ class CsrcAudioLevel {
public:
static constexpr RTPExtensionType kId = kRtpExtensionCsrcAudioLevel;
static constexpr uint8_t kMaxValueSizeBytes = 15;
static constexpr const char kUri[] =
"urn:ietf:params:rtp-hdrext:csrc-audio-level";
static constexpr ABSL_DEPRECATED("Use Uri()") const
char kUri[] = "urn:ietf:params:rtp-hdrext:csrc-audio-level";
static constexpr absl::string_view Uri() {
return RtpExtension::kCsrcAudioLevelsUri;
}
static bool Parse(rtc::ArrayView<const uint8_t> data,
std::vector<uint8_t>* csrc_audio_levels);
@ -97,7 +112,11 @@ class TransmissionOffset {
using value_type = int32_t;
static constexpr RTPExtensionType kId = kRtpExtensionTransmissionTimeOffset;
static constexpr uint8_t kValueSizeBytes = 3;
static constexpr const char kUri[] = "urn:ietf:params:rtp-hdrext:toffset";
static constexpr ABSL_DEPRECATED("Use Uri()") const
char kUri[] = "urn:ietf:params:rtp-hdrext:toffset";
static constexpr absl::string_view Uri() {
return RtpExtension::kTimestampOffsetUri;
}
static bool Parse(rtc::ArrayView<const uint8_t> data, int32_t* rtp_time);
static size_t ValueSize(int32_t rtp_time) { return kValueSizeBytes; }
@ -109,9 +128,13 @@ class TransportSequenceNumber {
using value_type = uint16_t;
static constexpr RTPExtensionType kId = kRtpExtensionTransportSequenceNumber;
static constexpr uint8_t kValueSizeBytes = 2;
static constexpr const char kUri[] =
static constexpr ABSL_DEPRECATED("Use Uri()") const char kUri[] =
"http://www.ietf.org/id/"
"draft-holmer-rmcat-transport-wide-cc-extensions-01";
static constexpr absl::string_view Uri() {
return RtpExtension::kTransportSequenceNumberUri;
}
static bool Parse(rtc::ArrayView<const uint8_t> data,
uint16_t* transport_sequence_number);
static size_t ValueSize(uint16_t /*transport_sequence_number*/) {
@ -127,8 +150,12 @@ class TransportSequenceNumberV2 {
kRtpExtensionTransportSequenceNumber02;
static constexpr uint8_t kValueSizeBytes = 4;
static constexpr uint8_t kValueSizeBytesWithoutFeedbackRequest = 2;
static constexpr const char kUri[] =
static constexpr ABSL_DEPRECATED("Use Uri()") const char kUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/transport-wide-cc-02";
static constexpr absl::string_view Uri() {
return RtpExtension::kTransportSequenceNumberV2Uri;
}
static bool Parse(rtc::ArrayView<const uint8_t> data,
uint16_t* transport_sequence_number,
absl::optional<FeedbackRequest>* feedback_request);
@ -151,7 +178,11 @@ class VideoOrientation {
using value_type = VideoRotation;
static constexpr RTPExtensionType kId = kRtpExtensionVideoRotation;
static constexpr uint8_t kValueSizeBytes = 1;
static constexpr const char kUri[] = "urn:3gpp:video-orientation";
static constexpr ABSL_DEPRECATED("Use Uri()") const
char kUri[] = "urn:3gpp:video-orientation";
static constexpr absl::string_view Uri() {
return RtpExtension::kVideoRotationUri;
}
static bool Parse(rtc::ArrayView<const uint8_t> data, VideoRotation* value);
static size_t ValueSize(VideoRotation) { return kValueSizeBytes; }
@ -166,8 +197,11 @@ class PlayoutDelayLimits {
using value_type = VideoPlayoutDelay;
static constexpr RTPExtensionType kId = kRtpExtensionPlayoutDelay;
static constexpr uint8_t kValueSizeBytes = 3;
static constexpr const char kUri[] =
static constexpr ABSL_DEPRECATED("Use Uri()") const char kUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay";
static constexpr absl::string_view Uri() {
return RtpExtension::kPlayoutDelayUri;
}
// Playout delay in milliseconds. A playout delay limit (min or max)
// has 12 bits allocated. This allows a range of 0-4095 values which
@ -188,8 +222,11 @@ class VideoContentTypeExtension {
using value_type = VideoContentType;
static constexpr RTPExtensionType kId = kRtpExtensionVideoContentType;
static constexpr uint8_t kValueSizeBytes = 1;
static constexpr const char kUri[] =
static constexpr ABSL_DEPRECATED("Use Uri()") const char kUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/video-content-type";
static constexpr absl::string_view Uri() {
return RtpExtension::kVideoContentTypeUri;
}
static bool Parse(rtc::ArrayView<const uint8_t> data,
VideoContentType* content_type);
@ -203,8 +240,11 @@ class VideoTimingExtension {
using value_type = VideoSendTiming;
static constexpr RTPExtensionType kId = kRtpExtensionVideoTiming;
static constexpr uint8_t kValueSizeBytes = 13;
static constexpr const char kUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/video-timing";
static constexpr ABSL_DEPRECATED("Use Uri()") const
char kUri[] = "http://www.webrtc.org/experiments/rtp-hdrext/video-timing";
static constexpr absl::string_view Uri() {
return RtpExtension::kVideoTimingUri;
}
// Offsets of the fields in the RTP header extension, counting from the first
// byte after the one-byte header.
@ -237,8 +277,11 @@ class ColorSpaceExtension {
static constexpr RTPExtensionType kId = kRtpExtensionColorSpace;
static constexpr uint8_t kValueSizeBytes = 28;
static constexpr uint8_t kValueSizeBytesWithoutHdrMetadata = 4;
static constexpr const char kUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/color-space";
static constexpr ABSL_DEPRECATED("Use Uri()") const
char kUri[] = "http://www.webrtc.org/experiments/rtp-hdrext/color-space";
static constexpr absl::string_view Uri() {
return RtpExtension::kColorSpaceUri;
}
static bool Parse(rtc::ArrayView<const uint8_t> data,
ColorSpace* color_space);
@ -287,21 +330,27 @@ class BaseRtpStringExtension {
class RtpStreamId : public BaseRtpStringExtension {
public:
static constexpr RTPExtensionType kId = kRtpExtensionRtpStreamId;
static constexpr const char kUri[] =
"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id";
static constexpr ABSL_DEPRECATED("Use Uri()") const
char kUri[] = "urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id";
static constexpr absl::string_view Uri() { return RtpExtension::kRidUri; }
};
class RepairedRtpStreamId : public BaseRtpStringExtension {
public:
static constexpr RTPExtensionType kId = kRtpExtensionRepairedRtpStreamId;
static constexpr const char kUri[] =
"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id";
static constexpr ABSL_DEPRECATED("Use Uri()") const
char kUri[] = "urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id";
static constexpr absl::string_view Uri() {
return RtpExtension::kRepairedRidUri;
}
};
class RtpMid : public BaseRtpStringExtension {
public:
static constexpr RTPExtensionType kId = kRtpExtensionMid;
static constexpr const char kUri[] = "urn:ietf:params:rtp-hdrext:sdes:mid";
static constexpr ABSL_DEPRECATED("Use Uri()") const
char kUri[] = "urn:ietf:params:rtp-hdrext:sdes:mid";
static constexpr absl::string_view Uri() { return RtpExtension::kMidUri; }
};
class InbandComfortNoiseExtension {
@ -312,6 +361,7 @@ class InbandComfortNoiseExtension {
static constexpr uint8_t kValueSizeBytes = 1;
static constexpr const char kUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/inband-cn";
static constexpr absl::string_view Uri() { return kUri; }
static bool Parse(rtc::ArrayView<const uint8_t> data,
absl::optional<uint8_t>* level);
@ -327,8 +377,12 @@ class VideoFrameTrackingIdExtension {
using value_type = uint16_t;
static constexpr RTPExtensionType kId = kRtpExtensionVideoFrameTrackingId;
static constexpr uint8_t kValueSizeBytes = 2;
static constexpr const char kUri[] =
static constexpr ABSL_DEPRECATED("Use Uri()") const char kUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/video-frame-tracking-id";
static constexpr absl::string_view Uri() {
return RtpExtension::kVideoFrameTrackingIdUri;
}
static bool Parse(rtc::ArrayView<const uint8_t> data,
uint16_t* video_frame_tracking_id);
static size_t ValueSize(uint16_t /*video_frame_tracking_id*/) {