Remove extra trait to read only mandatory part of the dependency descriptor Same can be achieved by having multiple Parse functions in the same RtpDependencyDescriptorExtension trait Bug: None Change-Id: I4eab0001d1ffff631a9d70fafde13e51f5c6ce36 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/340320 Reviewed-by: Philip Eliasson <philipel@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/main@{#41786}
diff --git a/modules/rtp_rtcp/source/rtp_dependency_descriptor_extension.cc b/modules/rtp_rtcp/source/rtp_dependency_descriptor_extension.cc index 27b0420..5d61e66 100644 --- a/modules/rtp_rtcp/source/rtp_dependency_descriptor_extension.cc +++ b/modules/rtp_rtcp/source/rtp_dependency_descriptor_extension.cc
@@ -52,7 +52,7 @@ return writer.Write(); } -bool RtpDependencyDescriptorExtensionMandatory::Parse( +bool RtpDependencyDescriptorExtension::Parse( rtc::ArrayView<const uint8_t> data, DependencyDescriptorMandatory* descriptor) { if (data.size() < 3) {
diff --git a/modules/rtp_rtcp/source/rtp_dependency_descriptor_extension.h b/modules/rtp_rtcp/source/rtp_dependency_descriptor_extension.h index a3e4159..93498fb 100644 --- a/modules/rtp_rtcp/source/rtp_dependency_descriptor_extension.h +++ b/modules/rtp_rtcp/source/rtp_dependency_descriptor_extension.h
@@ -33,6 +33,11 @@ const FrameDependencyStructure* structure, DependencyDescriptor* descriptor); + // Reads the mandatory part of the descriptor. + // Such read is stateless, i.e., doesn't require `FrameDependencyStructure`. + static bool Parse(rtc::ArrayView<const uint8_t> data, + DependencyDescriptorMandatory* descriptor); + static size_t ValueSize(const FrameDependencyStructure& structure, const DependencyDescriptor& descriptor) { return ValueSize(structure, kAllChainsAreActive, descriptor); @@ -54,16 +59,6 @@ static constexpr std::bitset<32> kAllChainsAreActive = ~uint32_t{0}; }; -// Trait to only read the mandatory part of the descriptor. -class RtpDependencyDescriptorExtensionMandatory { - public: - static constexpr webrtc::RTPExtensionType kId = - webrtc::RtpDependencyDescriptorExtension::kId; - - static bool Parse(rtc::ArrayView<const uint8_t> data, - DependencyDescriptorMandatory* descriptor); -}; - } // namespace webrtc #endif // MODULES_RTP_RTCP_SOURCE_RTP_DEPENDENCY_DESCRIPTOR_EXTENSION_H_
diff --git a/video/rtp_video_stream_receiver2.cc b/video/rtp_video_stream_receiver2.cc index 624f699..6b41acc 100644 --- a/video/rtp_video_stream_receiver2.cc +++ b/video/rtp_video_stream_receiver2.cc
@@ -432,7 +432,7 @@ RTPVideoHeader* video_header) { RTC_DCHECK_RUN_ON(&packet_sequence_checker_); if (DependencyDescriptorMandatory dd_mandatory; - rtp_packet.GetExtension<RtpDependencyDescriptorExtensionMandatory>( + rtp_packet.GetExtension<RtpDependencyDescriptorExtension>( &dd_mandatory)) { const int64_t frame_id = frame_id_unwrapper_.Unwrap(dd_mandatory.frame_number());