Fix includes in rtp_header_extensions.cc
Remove unused includes, including a TODO that is now irrelevant
Add missing includes
Remove definitinon for constexpr class constants as not needed since c++17 to avoid adding include for RTPExtensionType
Bug: webrtc:10198
Change-Id: I5f0ed15c5a9020d8b2e58bdfa213bb38eb59a840
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/317443
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40611}
diff --git a/modules/rtp_rtcp/source/rtp_header_extensions.cc b/modules/rtp_rtcp/source/rtp_header_extensions.cc
index 75e3e3c..4745b10 100644
--- a/modules/rtp_rtcp/source/rtp_header_extensions.cc
+++ b/modules/rtp_rtcp/source/rtp_header_extensions.cc
@@ -13,15 +13,23 @@
#include <string.h>
#include <cmath>
+#include <cstddef>
#include <cstdint>
#include <limits>
+#include <string>
+#include <vector>
#include "absl/strings/string_view.h"
+#include "absl/types/optional.h"
+#include "api/array_view.h"
+#include "api/rtp_headers.h"
+#include "api/video/color_space.h"
+#include "api/video/hdr_metadata.h"
+#include "api/video/video_content_type.h"
+#include "api/video/video_rotation.h"
+#include "api/video/video_timing.h"
#include "modules/rtp_rtcp/include/rtp_cvo.h"
#include "modules/rtp_rtcp/source/byte_io.h"
-// TODO(bug:9855) Move kNoSpatialIdx from vp9_globals.h to common_constants
-#include "modules/video_coding/codecs/interface/common_constants.h"
-#include "modules/video_coding/codecs/vp9/include/vp9_globals.h"
#include "rtc_base/checks.h"
namespace webrtc {
@@ -40,9 +48,6 @@
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// | ID | len=2 | absolute send time |
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-constexpr RTPExtensionType AbsoluteSendTime::kId;
-constexpr uint8_t AbsoluteSendTime::kValueSizeBytes;
-
bool AbsoluteSendTime::Parse(rtc::ArrayView<const uint8_t> data,
uint32_t* time_24bits) {
if (data.size() != 3)
@@ -94,11 +99,6 @@
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// | ... (56-63) |
// +-+-+-+-+-+-+-+-+
-constexpr RTPExtensionType AbsoluteCaptureTimeExtension::kId;
-constexpr uint8_t AbsoluteCaptureTimeExtension::kValueSizeBytes;
-constexpr uint8_t AbsoluteCaptureTimeExtension::
- kValueSizeBytesWithoutEstimatedCaptureClockOffset;
-
bool AbsoluteCaptureTimeExtension::Parse(rtc::ArrayView<const uint8_t> data,
AbsoluteCaptureTime* extension) {
if (data.size() != kValueSizeBytes &&
@@ -160,10 +160,6 @@
// | ID | len=1 |V| level |
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Sample Audio Level Encoding Using the Two-Byte Header Format
-
-constexpr RTPExtensionType AudioLevel::kId;
-constexpr uint8_t AudioLevel::kValueSizeBytes;
-
bool AudioLevel::Parse(rtc::ArrayView<const uint8_t> data,
bool* voice_activity,
uint8_t* audio_level) {
@@ -206,9 +202,6 @@
// |0| level 3 | 0 (pad) | ... |
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Sample Audio Level Encoding Using the Two-Byte Header Format
-constexpr RTPExtensionType CsrcAudioLevel::kId;
-constexpr uint8_t CsrcAudioLevel::kMaxValueSizeBytes;
-
bool CsrcAudioLevel::Parse(rtc::ArrayView<const uint8_t> data,
std::vector<uint8_t>* csrc_audio_levels) {
if (data.size() > kRtpCsrcSize) {
@@ -254,9 +247,6 @@
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// | ID | len=2 | transmission offset |
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-constexpr RTPExtensionType TransmissionOffset::kId;
-constexpr uint8_t TransmissionOffset::kValueSizeBytes;
-
bool TransmissionOffset::Parse(rtc::ArrayView<const uint8_t> data,
int32_t* rtp_time) {
if (data.size() != 3)
@@ -279,9 +269,6 @@
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// | ID | L=1 |transport-wide sequence number |
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-constexpr RTPExtensionType TransportSequenceNumber::kId;
-constexpr uint8_t TransportSequenceNumber::kValueSizeBytes;
-
bool TransportSequenceNumber::Parse(rtc::ArrayView<const uint8_t> data,
uint16_t* transport_sequence_number) {
if (data.size() != kValueSizeBytes)
@@ -314,12 +301,6 @@
// or not and `seq_count` determines how many packets the feedback packet should
// cover including the current packet. If `seq_count` is zero no feedback is
// requested.
-constexpr RTPExtensionType TransportSequenceNumberV2::kId;
-constexpr uint8_t TransportSequenceNumberV2::kValueSizeBytes;
-constexpr uint8_t
- TransportSequenceNumberV2::kValueSizeBytesWithoutFeedbackRequest;
-constexpr uint16_t TransportSequenceNumberV2::kIncludeTimestampsBit;
-
bool TransportSequenceNumberV2::Parse(
rtc::ArrayView<const uint8_t> data,
uint16_t* transport_sequence_number,
@@ -377,9 +358,6 @@
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// | ID | len=0 |0 0 0 0 C F R R|
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-constexpr RTPExtensionType VideoOrientation::kId;
-constexpr uint8_t VideoOrientation::kValueSizeBytes;
-
bool VideoOrientation::Parse(rtc::ArrayView<const uint8_t> data,
VideoRotation* rotation) {
if (data.size() != 1)
@@ -414,9 +392,6 @@
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// | ID | len=2 | MIN delay | MAX delay |
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-constexpr RTPExtensionType PlayoutDelayLimits::kId;
-constexpr uint8_t PlayoutDelayLimits::kValueSizeBytes;
-
bool PlayoutDelayLimits::Parse(rtc::ArrayView<const uint8_t> data,
VideoPlayoutDelay* playout_delay) {
RTC_DCHECK(playout_delay);
@@ -455,9 +430,6 @@
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// | ID | len=0 | Content type |
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-constexpr RTPExtensionType VideoContentTypeExtension::kId;
-constexpr uint8_t VideoContentTypeExtension::kValueSizeBytes;
-
bool VideoContentTypeExtension::Parse(rtc::ArrayView<const uint8_t> data,
VideoContentType* content_type) {
if (data.size() == 1 &&
@@ -500,17 +472,6 @@
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// | network2 timestamp ms delta |
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-constexpr RTPExtensionType VideoTimingExtension::kId;
-constexpr uint8_t VideoTimingExtension::kValueSizeBytes;
-constexpr uint8_t VideoTimingExtension::kFlagsOffset;
-constexpr uint8_t VideoTimingExtension::kEncodeStartDeltaOffset;
-constexpr uint8_t VideoTimingExtension::kEncodeFinishDeltaOffset;
-constexpr uint8_t VideoTimingExtension::kPacketizationFinishDeltaOffset;
-constexpr uint8_t VideoTimingExtension::kPacerExitDeltaOffset;
-constexpr uint8_t VideoTimingExtension::kNetworkTimestampDeltaOffset;
-constexpr uint8_t VideoTimingExtension::kNetwork2TimestampDeltaOffset;
-
bool VideoTimingExtension::Parse(rtc::ArrayView<const uint8_t> data,
VideoSendTiming* timing) {
RTC_DCHECK(timing);
@@ -609,10 +570,6 @@
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// |range+chr.sit. |
// +-+-+-+-+-+-+-+-+
-
-constexpr RTPExtensionType ColorSpaceExtension::kId;
-constexpr uint8_t ColorSpaceExtension::kValueSizeBytes;
-
bool ColorSpaceExtension::Parse(rtc::ArrayView<const uint8_t> data,
ColorSpace* color_space) {
RTC_DCHECK(color_space);
@@ -815,11 +772,6 @@
return true;
}
-// Constant declarations for RTP header extension types.
-constexpr RTPExtensionType RtpStreamId::kId;
-constexpr RTPExtensionType RepairedRtpStreamId::kId;
-constexpr RTPExtensionType RtpMid::kId;
-
// An RTP Header Extension for Inband Comfort Noise
//
// The form of the audio level extension block:
@@ -837,11 +789,6 @@
// | ID | len=1 |N| level |
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// Sample Audio Level Encoding Using the Two-Byte Header Format
-
-constexpr RTPExtensionType InbandComfortNoiseExtension::kId;
-constexpr uint8_t InbandComfortNoiseExtension::kValueSizeBytes;
-constexpr const char InbandComfortNoiseExtension::kUri[];
-
bool InbandComfortNoiseExtension::Parse(rtc::ArrayView<const uint8_t> data,
absl::optional<uint8_t>* level) {
if (data.size() != kValueSizeBytes)
@@ -872,10 +819,6 @@
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
// | ID | L=1 | video-frame-tracking-id |
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-constexpr RTPExtensionType VideoFrameTrackingIdExtension::kId;
-constexpr uint8_t VideoFrameTrackingIdExtension::kValueSizeBytes;
-
bool VideoFrameTrackingIdExtension::Parse(rtc::ArrayView<const uint8_t> data,
uint16_t* video_frame_tracking_id) {
if (data.size() != kValueSizeBytes) {