Make all RtpExtension uris constexpr rather than just const

while at it removed unused deprecated kGenericFrameDescriptorUri
and slightly reorded extensions for better grouping.

Bug: webrtc:7472
Change-Id: I42c03d5f20798ec9148b5085d57953ff3633e055
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168541
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30883}
This commit is contained in:
Danil Chapovalov 2020-03-25 11:02:37 +01:00 committed by Commit Bot
parent 7e91482fcc
commit 418cfee167
2 changed files with 70 additions and 85 deletions

View File

@ -96,64 +96,25 @@ std::string RtpExtension::ToString() const {
return sb.str();
}
const char RtpExtension::kAudioLevelUri[] =
"urn:ietf:params:rtp-hdrext:ssrc-audio-level";
const char RtpExtension::kTimestampOffsetUri[] =
"urn:ietf:params:rtp-hdrext:toffset";
const char RtpExtension::kAbsSendTimeUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time";
const char RtpExtension::kAbsoluteCaptureTimeUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time";
const char RtpExtension::kVideoRotationUri[] = "urn:3gpp:video-orientation";
const char RtpExtension::kTransportSequenceNumberUri[] =
"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01";
const char RtpExtension::kTransportSequenceNumberV2Uri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/transport-wide-cc-02";
// This extension allows applications to adaptively limit the playout delay
// on frames as per the current needs. For example, a gaming application
// has very different needs on end-to-end delay compared to a video-conference
// application.
const char RtpExtension::kPlayoutDelayUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay";
const char RtpExtension::kVideoContentTypeUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/video-content-type";
const char RtpExtension::kVideoTimingUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/video-timing";
const char RtpExtension::kMidUri[] = "urn:ietf:params:rtp-hdrext:sdes:mid";
const char RtpExtension::kFrameMarkingUri[] =
"http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07";
const char RtpExtension::kGenericFrameDescriptorUri00[] =
"http://www.webrtc.org/experiments/rtp-hdrext/generic-frame-descriptor-00";
const char RtpExtension::kGenericFrameDescriptorUri01[] =
"http://www.webrtc.org/experiments/rtp-hdrext/generic-frame-descriptor-01";
const char RtpExtension::kDependencyDescriptorUri[] =
"https://aomediacodec.github.io/av1-rtp-spec/"
"#dependency-descriptor-rtp-header-extension";
const char RtpExtension::kGenericFrameDescriptorUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/generic-frame-descriptor-00";
const char RtpExtension::kEncryptHeaderExtensionsUri[] =
"urn:ietf:params:rtp-hdrext:encrypt";
const char RtpExtension::kColorSpaceUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/color-space";
const char RtpExtension::kRidUri[] =
"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id";
const char RtpExtension::kRepairedRidUri[] =
"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id";
constexpr char RtpExtension::kEncryptHeaderExtensionsUri[];
constexpr char RtpExtension::kAudioLevelUri[];
constexpr char RtpExtension::kTimestampOffsetUri[];
constexpr char RtpExtension::kAbsSendTimeUri[];
constexpr char RtpExtension::kAbsoluteCaptureTimeUri[];
constexpr char RtpExtension::kVideoRotationUri[];
constexpr char RtpExtension::kVideoContentTypeUri[];
constexpr char RtpExtension::kVideoTimingUri[];
constexpr char RtpExtension::kFrameMarkingUri[];
constexpr char RtpExtension::kGenericFrameDescriptorUri00[];
constexpr char RtpExtension::kGenericFrameDescriptorUri01[];
constexpr char RtpExtension::kDependencyDescriptorUri[];
constexpr char RtpExtension::kTransportSequenceNumberUri[];
constexpr char RtpExtension::kTransportSequenceNumberV2Uri[];
constexpr char RtpExtension::kPlayoutDelayUri[];
constexpr char RtpExtension::kColorSpaceUri[];
constexpr char RtpExtension::kMidUri[];
constexpr char RtpExtension::kRidUri[];
constexpr char RtpExtension::kRepairedRidUri[];
constexpr int RtpExtension::kMinId;
constexpr int RtpExtension::kMaxId;

View File

@ -254,6 +254,7 @@ struct RTC_EXPORT RtpExtension {
RtpExtension(std::string uri, int id);
RtpExtension(std::string uri, int id, bool encrypt);
~RtpExtension();
std::string ToString() const;
bool operator==(const RtpExtension& rhs) const {
return uri == rhs.uri && id == rhs.id && encrypt == rhs.encrypt;
@ -275,66 +276,89 @@ struct RTC_EXPORT RtpExtension {
static std::vector<RtpExtension> FilterDuplicateNonEncrypted(
const std::vector<RtpExtension>& extensions);
// Encryption of Header Extensions, see RFC 6904 for details:
// https://tools.ietf.org/html/rfc6904
static constexpr char kEncryptHeaderExtensionsUri[] =
"urn:ietf:params:rtp-hdrext:encrypt";
// Header extension for audio levels, as defined in:
// http://tools.ietf.org/html/draft-ietf-avtext-client-to-mixer-audio-level-03
static const char kAudioLevelUri[];
// https://tools.ietf.org/html/rfc6464
static constexpr char kAudioLevelUri[] =
"urn:ietf:params:rtp-hdrext:ssrc-audio-level";
// Header extension for RTP timestamp offset, see RFC 5450 for details:
// http://tools.ietf.org/html/rfc5450
static const char kTimestampOffsetUri[];
static constexpr char kTimestampOffsetUri[] =
"urn:ietf:params:rtp-hdrext:toffset";
// Header extension for absolute send time, see url for details:
// http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
static const char kAbsSendTimeUri[];
static constexpr char kAbsSendTimeUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time";
// Header extension for absolute capture time, see url for details:
// http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time
static const char kAbsoluteCaptureTimeUri[];
static constexpr char kAbsoluteCaptureTimeUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/abs-capture-time";
// Header extension for coordination of video orientation, see url for
// details:
// http://www.etsi.org/deliver/etsi_ts/126100_126199/126114/12.07.00_60/ts_126114v120700p.pdf
static const char kVideoRotationUri[];
static constexpr char kVideoRotationUri[] = "urn:3gpp:video-orientation";
// Header extension for video content type. E.g. default or screenshare.
static const char kVideoContentTypeUri[];
static constexpr char kVideoContentTypeUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/video-content-type";
// Header extension for video timing.
static const char kVideoTimingUri[];
static constexpr char kVideoTimingUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/video-timing";
// Header extension for video frame marking.
static const char kFrameMarkingUri[];
static constexpr char kFrameMarkingUri[] =
"http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07";
// Experimental codec agnostic frame descriptor.
static const char kGenericFrameDescriptorUri00[];
static const char kGenericFrameDescriptorUri01[];
static const char kDependencyDescriptorUri[];
// TODO(bugs.webrtc.org/10243): Remove once dependencies have been updated.
static const char kGenericFrameDescriptorUri[];
static constexpr char kGenericFrameDescriptorUri00[] =
"http://www.webrtc.org/experiments/rtp-hdrext/"
"generic-frame-descriptor-00";
static constexpr char kGenericFrameDescriptorUri01[] =
"http://www.webrtc.org/experiments/rtp-hdrext/"
"generic-frame-descriptor-01";
static constexpr char kDependencyDescriptorUri[] =
"https://aomediacodec.github.io/av1-rtp-spec/"
"#dependency-descriptor-rtp-header-extension";
// Header extension for transport sequence number, see url for details:
// http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions
static const char kTransportSequenceNumberUri[];
static const char kTransportSequenceNumberV2Uri[];
static constexpr char kTransportSequenceNumberUri[] =
"http://www.ietf.org/id/"
"draft-holmer-rmcat-transport-wide-cc-extensions-01";
static constexpr char kTransportSequenceNumberV2Uri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/transport-wide-cc-02";
static const char kPlayoutDelayUri[];
// This extension allows applications to adaptively limit the playout delay
// on frames as per the current needs. For example, a gaming application
// has very different needs on end-to-end delay compared to a video-conference
// application.
static constexpr char kPlayoutDelayUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay";
// Header extension for color space information.
static constexpr char kColorSpaceUri[] =
"http://www.webrtc.org/experiments/rtp-hdrext/color-space";
// Header extension for identifying media section within a transport.
// https://tools.ietf.org/html/draft-ietf-mmusic-sdp-bundle-negotiation-49#section-15
static const char kMidUri[];
// Encryption of Header Extensions, see RFC 6904 for details:
// https://tools.ietf.org/html/rfc6904
static const char kEncryptHeaderExtensionsUri[];
// Header extension for color space information.
static const char kColorSpaceUri[];
static constexpr char kMidUri[] = "urn:ietf:params:rtp-hdrext:sdes:mid";
// Header extension for RIDs and Repaired RIDs
// https://tools.ietf.org/html/draft-ietf-avtext-rid-09
// https://tools.ietf.org/html/draft-ietf-mmusic-rid-15
static const char kRidUri[];
static const char kRepairedRidUri[];
static constexpr char kRidUri[] =
"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id";
static constexpr char kRepairedRidUri[] =
"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id";
// Inclusive min and max IDs for two-byte header extensions and one-byte
// header extensions, per RFC8285 Section 4.2-4.3.