From 2f91bdceee74c076dc7a7ec084de8ef4691b1cc0 Mon Sep 17 00:00:00 2001 From: Fanny Linderborg Date: Wed, 28 Aug 2024 09:46:46 +0200 Subject: [PATCH] Declare corruption detection URI in RtpExtension MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit R=sprang@webrtc.org Bug: webrtc:358039777 Change-Id: I9c66794b8a622bef5505f3a4a7252a0e7a989813 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/360760 Reviewed-by: Harald Alvestrand Commit-Queue: Fanny Linderborg Reviewed-by: Erik Språng Cr-Commit-Position: refs/heads/main@{#42887} --- api/rtp_parameters.cc | 4 +++- api/rtp_parameters.h | 4 ++++ modules/rtp_rtcp/source/corruption_detection_extension.h | 7 ++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/api/rtp_parameters.cc b/api/rtp_parameters.cc index 283d238e77..c919f7c1dd 100644 --- a/api/rtp_parameters.cc +++ b/api/rtp_parameters.cc @@ -149,6 +149,7 @@ constexpr char RtpExtension::kRidUri[]; constexpr char RtpExtension::kRepairedRidUri[]; constexpr char RtpExtension::kVideoFrameTrackingIdUri[]; constexpr char RtpExtension::kCsrcAudioLevelsUri[]; +constexpr char RtpExtension::kCorruptionDetectionUri[]; constexpr int RtpExtension::kMinId; constexpr int RtpExtension::kMaxId; @@ -184,7 +185,8 @@ bool RtpExtension::IsSupportedForVideo(absl::string_view uri) { uri == webrtc::RtpExtension::kRidUri || uri == webrtc::RtpExtension::kRepairedRidUri || uri == webrtc::RtpExtension::kVideoLayersAllocationUri || - uri == webrtc::RtpExtension::kVideoFrameTrackingIdUri; + uri == webrtc::RtpExtension::kVideoFrameTrackingIdUri || + uri == webrtc::RtpExtension::kCorruptionDetectionUri; } bool RtpExtension::IsEncryptionSupported(absl::string_view uri) { diff --git a/api/rtp_parameters.h b/api/rtp_parameters.h index 025817cf37..70d7686704 100644 --- a/api/rtp_parameters.h +++ b/api/rtp_parameters.h @@ -377,6 +377,10 @@ struct RTC_EXPORT RtpExtension { static constexpr char kCsrcAudioLevelsUri[] = "urn:ietf:params:rtp-hdrext:csrc-audio-level"; + // Header extension for automatic corruption detection. + static constexpr char kCorruptionDetectionUri[] = + "http://www.webrtc.org/experiments/rtp-hdrext/corruption-detection"; + // Inclusive min and max IDs for two-byte header extensions and one-byte // header extensions, per RFC8285 Section 4.2-4.3. static constexpr int kMinId = 1; diff --git a/modules/rtp_rtcp/source/corruption_detection_extension.h b/modules/rtp_rtcp/source/corruption_detection_extension.h index 66bde1af2b..63e770dd61 100644 --- a/modules/rtp_rtcp/source/corruption_detection_extension.h +++ b/modules/rtp_rtcp/source/corruption_detection_extension.h @@ -16,6 +16,7 @@ #include "absl/strings/string_view.h" #include "api/array_view.h" +#include "api/rtp_parameters.h" #include "common_video/corruption_detection_message.h" #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h" @@ -33,10 +34,10 @@ class CorruptionDetectionExtension { static constexpr RTPExtensionType kId = kRtpExtensionCorruptionDetection; static constexpr uint8_t kMaxValueSizeBytes = 16; - static constexpr char kCorruptionDetectionUri[] = - "http://www.webrtc.org/experiments/rtp-hdrext/corruption-detection"; - static constexpr absl::string_view Uri() { return kCorruptionDetectionUri; } + static constexpr absl::string_view Uri() { + return RtpExtension::kCorruptionDetectionUri; + } static bool Parse(rtc::ArrayView data, CorruptionDetectionMessage* message); static bool Write(rtc::ArrayView data,