Stop hard-coding default IDs for RTP extensions
Hard-coding default values forces IDs over 14 to be used even
when we offer less than 15 different extensions.
Note that the code relies on MergeRtpHdrExts for making sure
that extension IDs are kept consistent and non-colliding between
different streams (audio/video).
Bug: webrtc:10288
Change-Id: I3e59f7ddc8ca43cea91084a6b7f36df70fb6be4a
Reviewed-on: https://webrtc-review.googlesource.com/c/121646
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26622}
diff --git a/api/rtp_parameters.h b/api/rtp_parameters.h
index 90e4a4c..6138c37 100644
--- a/api/rtp_parameters.h
+++ b/api/rtp_parameters.h
@@ -18,6 +18,7 @@
#include "absl/types/optional.h"
#include "api/media_types.h"
+#include "rtc_base/deprecation.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc {
@@ -258,53 +259,64 @@
// 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[];
- static const int kAudioLevelDefaultId;
+ // TODO(bugs.webrtc.org/10288): Remove once dependencies have been updated.
+ RTC_DEPRECATED static const int kAudioLevelDefaultId;
// Header extension for RTP timestamp offset, see RFC 5450 for details:
// http://tools.ietf.org/html/rfc5450
static const char kTimestampOffsetUri[];
- static const int kTimestampOffsetDefaultId;
+ // TODO(bugs.webrtc.org/10288): Remove once dependencies have been updated.
+ RTC_DEPRECATED static const int kTimestampOffsetDefaultId;
// 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 const int kAbsSendTimeDefaultId;
+ // TODO(bugs.webrtc.org/10288): Remove once dependencies have been updated.
+ RTC_DEPRECATED static const int kAbsSendTimeDefaultId;
// 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 const int kVideoRotationDefaultId;
+ // TODO(bugs.webrtc.org/10288): Remove once dependencies have been updated.
+ RTC_DEPRECATED static const int kVideoRotationDefaultId;
// Header extension for video content type. E.g. default or screenshare.
static const char kVideoContentTypeUri[];
- static const int kVideoContentTypeDefaultId;
+ // TODO(bugs.webrtc.org/10288): Remove once dependencies have been updated.
+ RTC_DEPRECATED static const int kVideoContentTypeDefaultId;
// Header extension for video timing.
static const char kVideoTimingUri[];
- static const int kVideoTimingDefaultId;
+ // TODO(bugs.webrtc.org/10288): Remove once dependencies have been updated.
+ RTC_DEPRECATED static const int kVideoTimingDefaultId;
// Header extension for video frame marking.
static const char kFrameMarkingUri[];
- static const int kFrameMarkingDefaultId;
+ // TODO(bugs.webrtc.org/10288): Remove once dependencies have been updated.
+ RTC_DEPRECATED static const int kFrameMarkingDefaultId;
// Experimental codec agnostic frame descriptor.
static const char kGenericFrameDescriptorUri[];
- static const int kGenericFrameDescriptorDefaultId;
+ // TODO(bugs.webrtc.org/10288): Remove once dependencies have been updated.
+ RTC_DEPRECATED static const int kGenericFrameDescriptorDefaultId;
// 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 const int kTransportSequenceNumberDefaultId;
+ // TODO(bugs.webrtc.org/10288): Remove once dependencies have been updated.
+ RTC_DEPRECATED static const int kTransportSequenceNumberDefaultId;
static const char kPlayoutDelayUri[];
- static const int kPlayoutDelayDefaultId;
+ // TODO(bugs.webrtc.org/10288): Remove once dependencies have been updated.
+ RTC_DEPRECATED static const int kPlayoutDelayDefaultId;
// 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[];
- static const int kMidDefaultId;
+ // TODO(bugs.webrtc.org/10288): Remove once dependencies have been updated.
+ RTC_DEPRECATED static const int kMidDefaultId;
// Encryption of Header Extensions, see RFC 6904 for details:
// https://tools.ietf.org/html/rfc6904
@@ -312,15 +324,18 @@
// Header extension for color space information.
static const char kColorSpaceUri[];
- static const int kColorSpaceDefaultId;
+ // TODO(bugs.webrtc.org/10288): Remove once dependencies have been updated.
+ RTC_DEPRECATED static const int kColorSpaceDefaultId;
// 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 int kRidDefaultId;
+ // TODO(bugs.webrtc.org/10288): Remove once dependencies have been updated.
+ RTC_DEPRECATED static const int kRidDefaultId;
static const char kRepairedRidUri[];
- static const int kRepairedRidDefaultId;
+ // TODO(bugs.webrtc.org/10288): Remove once dependencies have been updated.
+ RTC_DEPRECATED static const int kRepairedRidDefaultId;
// Inclusive min and max IDs for two-byte header extensions and one-byte
// header extensions, per RFC8285 Section 4.2-4.3.