diff --git a/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.cc b/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.cc index 0d4ce95c6b..1356069ca9 100644 --- a/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.cc +++ b/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.cc @@ -31,11 +31,10 @@ namespace webrtc { // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // | ID | len=2 | absolute send time | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -const char* AbsoluteSendTime::kName = +constexpr RTPExtensionType AbsoluteSendTime::kId; +constexpr uint8_t AbsoluteSendTime::kValueSizeBytes; +const char* const AbsoluteSendTime::kUri = "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"; -bool AbsoluteSendTime::IsSupportedFor(MediaType type) { - return true; -} bool AbsoluteSendTime::Parse(const uint8_t* data, uint32_t* time_24bits) { *time_24bits = ByteReader::ReadBigEndian(data); @@ -59,19 +58,10 @@ bool AbsoluteSendTime::Write(uint8_t* data, int64_t time_ms) { // | ID | len=0 |V| level | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // -const char* AudioLevel::kName = "urn:ietf:params:rtp-hdrext:ssrc-audio-level"; -bool AudioLevel::IsSupportedFor(MediaType type) { - switch (type) { - case MediaType::ANY: - case MediaType::AUDIO: - return true; - case MediaType::VIDEO: - case MediaType::DATA: - return false; - } - RTC_NOTREACHED(); - return false; -} +constexpr RTPExtensionType AudioLevel::kId; +constexpr uint8_t AudioLevel::kValueSizeBytes; +const char* const AudioLevel::kUri = + "urn:ietf:params:rtp-hdrext:ssrc-audio-level"; bool AudioLevel::Parse(const uint8_t* data, bool* voice_activity, @@ -105,19 +95,10 @@ bool AudioLevel::Write(uint8_t* data, // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // | ID | len=2 | transmission offset | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -const char* TransmissionOffset::kName = "urn:ietf:params:rtp-hdrext:toffset"; -bool TransmissionOffset::IsSupportedFor(MediaType type) { - switch (type) { - case MediaType::ANY: - case MediaType::VIDEO: - return true; - case MediaType::AUDIO: - case MediaType::DATA: - return false; - } - RTC_NOTREACHED(); - return false; -} +constexpr RTPExtensionType TransmissionOffset::kId; +constexpr uint8_t TransmissionOffset::kValueSizeBytes; +const char* const TransmissionOffset::kUri = + "urn:ietf:params:rtp-hdrext:toffset"; bool TransmissionOffset::Parse(const uint8_t* data, int32_t* rtp_time) { *rtp_time = ByteReader::ReadBigEndian(data); @@ -135,11 +116,10 @@ bool TransmissionOffset::Write(uint8_t* data, int32_t rtp_time) { // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // | ID | L=1 |transport wide sequence number | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -const char* TransportSequenceNumber::kName = +constexpr RTPExtensionType TransportSequenceNumber::kId; +constexpr uint8_t TransportSequenceNumber::kValueSizeBytes; +const char* const TransportSequenceNumber::kUri = "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions"; -bool TransportSequenceNumber::IsSupportedFor(MediaType type) { - return true; -} bool TransportSequenceNumber::Parse(const uint8_t* data, uint16_t* value) { *value = ByteReader::ReadBigEndian(data); @@ -162,19 +142,9 @@ bool TransportSequenceNumber::Write(uint8_t* data, uint16_t value) { // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // | ID | len=0 |0 0 0 0 C F R R| // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -const char* VideoOrientation::kName = "urn:3gpp:video-orientation"; -bool VideoOrientation::IsSupportedFor(MediaType type) { - switch (type) { - case MediaType::ANY: - case MediaType::VIDEO: - return true; - case MediaType::AUDIO: - case MediaType::DATA: - return false; - } - RTC_NOTREACHED(); - return false; -} +constexpr RTPExtensionType VideoOrientation::kId; +constexpr uint8_t VideoOrientation::kValueSizeBytes; +const char* const VideoOrientation::kUri = "urn:3gpp:video-orientation"; bool VideoOrientation::Parse(const uint8_t* data, VideoRotation* rotation) { *rotation = ConvertCVOByteToVideoRotation(data[0]); @@ -203,20 +173,8 @@ bool VideoOrientation::Write(uint8_t* data, uint8_t value) { // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ constexpr RTPExtensionType PlayoutDelayLimits::kId; constexpr uint8_t PlayoutDelayLimits::kValueSizeBytes; -const char* PlayoutDelayLimits::kName = +const char* const PlayoutDelayLimits::kUri = "http://www.webrtc.org/experiments/rtp-hdrext/playout-delay"; -bool PlayoutDelayLimits::IsSupportedFor(MediaType type) { - switch (type) { - case MediaType::ANY: - case MediaType::VIDEO: - return true; - case MediaType::AUDIO: - case MediaType::DATA: - return false; - } - RTC_NOTREACHED(); - return false; -} bool PlayoutDelayLimits::Parse(const uint8_t* data, PlayoutDelay* playout_delay) { diff --git a/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h b/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h index 95473f4e39..b6850235d1 100644 --- a/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h +++ b/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h @@ -11,7 +11,6 @@ #define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTP_HEADER_EXTENSIONS_H_ #include "webrtc/base/basictypes.h" -#include "webrtc/call.h" #include "webrtc/common_video/rotation.h" #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h" @@ -21,8 +20,8 @@ class AbsoluteSendTime { public: static constexpr RTPExtensionType kId = kRtpExtensionAbsoluteSendTime; static constexpr uint8_t kValueSizeBytes = 3; - static const char* kName; - static bool IsSupportedFor(MediaType type); + static const char* const kUri; + static bool Parse(const uint8_t* data, uint32_t* time_24bits); static bool Write(uint8_t* data, int64_t time_ms); @@ -35,8 +34,8 @@ class AudioLevel { public: static constexpr RTPExtensionType kId = kRtpExtensionAudioLevel; static constexpr uint8_t kValueSizeBytes = 1; - static const char* kName; - static bool IsSupportedFor(MediaType type); + static const char* const kUri; + static bool Parse(const uint8_t* data, bool* voice_activity, uint8_t* audio_level); @@ -47,8 +46,8 @@ class TransmissionOffset { public: static constexpr RTPExtensionType kId = kRtpExtensionTransmissionTimeOffset; static constexpr uint8_t kValueSizeBytes = 3; - static const char* kName; - static bool IsSupportedFor(MediaType type); + static const char* const kUri; + static bool Parse(const uint8_t* data, int32_t* rtp_time); static bool Write(uint8_t* data, int32_t rtp_time); }; @@ -57,8 +56,8 @@ class TransportSequenceNumber { public: static constexpr RTPExtensionType kId = kRtpExtensionTransportSequenceNumber; static constexpr uint8_t kValueSizeBytes = 2; - static const char* kName; - static bool IsSupportedFor(MediaType type); + static const char* const kUri; + static bool Parse(const uint8_t* data, uint16_t* value); static bool Write(uint8_t* data, uint16_t value); }; @@ -67,8 +66,8 @@ class VideoOrientation { public: static constexpr RTPExtensionType kId = kRtpExtensionVideoRotation; static constexpr uint8_t kValueSizeBytes = 1; - static const char* kName; - static bool IsSupportedFor(MediaType type); + static const char* const kUri; + static bool Parse(const uint8_t* data, VideoRotation* value); static bool Write(uint8_t* data, VideoRotation value); static bool Parse(const uint8_t* data, uint8_t* value); @@ -79,8 +78,8 @@ class PlayoutDelayLimits { public: static constexpr RTPExtensionType kId = kRtpExtensionPlayoutDelay; static constexpr uint8_t kValueSizeBytes = 3; - static const char* kName; - static bool IsSupportedFor(MediaType type); + static const char* const kUri; + // Playout delay in milliseconds. A playout delay limit (min or max) // has 12 bits allocated. This allows a range of 0-4095 values which // translates to a range of 0-40950 in milliseconds.