From 067dc86c8ae639397282c140a0adb497470bbf29 Mon Sep 17 00:00:00 2001 From: Elad Alon Date: Mon, 21 Jan 2019 14:16:59 +0100 Subject: [PATCH] Make SetFirstSubFrameInFrame and SetLastSubFrameInFrame protected MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These methods should only be used when parsing frames produced by an older client; newer clients should not attempt to set these values. (When talking to older clients, TRUE is hard-coded. When talking to newer clients, these flags are deprecated.) Bug: webrtc:10214 Change-Id: I8537869ef3112f4ce9531c6becc33951715685a1 Reviewed-on: https://webrtc-review.googlesource.com/c/118421 Reviewed-by: Erik Språng Reviewed-by: Danil Chapovalov Commit-Queue: Elad Alon Cr-Commit-Position: refs/heads/master@{#26360} --- modules/rtp_rtcp/source/rtp_generic_frame_descriptor.h | 8 ++++++-- modules/rtp_rtcp/source/rtp_sender_video.cc | 2 -- video/rtp_video_stream_receiver_unittest.cc | 6 ------ 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/modules/rtp_rtcp/source/rtp_generic_frame_descriptor.h b/modules/rtp_rtcp/source/rtp_generic_frame_descriptor.h index 811b6346c0..52d401fedd 100644 --- a/modules/rtp_rtcp/source/rtp_generic_frame_descriptor.h +++ b/modules/rtp_rtcp/source/rtp_generic_frame_descriptor.h @@ -18,6 +18,8 @@ namespace webrtc { +class RtpGenericFrameDescriptorExtension; + // Data to put on the wire for FrameDescriptor rtp header extension. class RtpGenericFrameDescriptor { public: @@ -35,9 +37,7 @@ class RtpGenericFrameDescriptor { void SetLastPacketInSubFrame(bool last) { end_of_subframe_ = last; } bool FirstSubFrameInFrame() const { return beginning_of_frame_; } - void SetFirstSubFrameInFrame(bool first) { beginning_of_frame_ = first; } bool LastSubFrameInFrame() const { return end_of_frame_; } - void SetLastSubFrameInFrame(bool last) { end_of_frame_ = last; } // Properties below undefined if !FirstPacketInSubFrame() // Valid range for temporal layer: [0, 7] @@ -66,6 +66,10 @@ class RtpGenericFrameDescriptor { rtc::ArrayView GetByteRepresentation(); private: + friend class RtpGenericFrameDescriptorExtension; + void SetFirstSubFrameInFrame(bool first) { beginning_of_frame_ = first; } + void SetLastSubFrameInFrame(bool last) { end_of_frame_ = last; } + bool beginning_of_subframe_ = false; bool end_of_subframe_ = false; bool beginning_of_frame_ = true; diff --git a/modules/rtp_rtcp/source/rtp_sender_video.cc b/modules/rtp_rtcp/source/rtp_sender_video.cc index 8f276c4a3b..a33aa3698d 100644 --- a/modules/rtp_rtcp/source/rtp_sender_video.cc +++ b/modules/rtp_rtcp/source/rtp_sender_video.cc @@ -82,8 +82,6 @@ void AddRtpHeaderExtensions(const RTPVideoHeader& video_header, RtpGenericFrameDescriptor generic_descriptor; generic_descriptor.SetFirstPacketInSubFrame(first_packet); generic_descriptor.SetLastPacketInSubFrame(last_packet); - generic_descriptor.SetFirstSubFrameInFrame(true); - generic_descriptor.SetLastSubFrameInFrame(true); if (first_packet) { generic_descriptor.SetFrameId( diff --git a/video/rtp_video_stream_receiver_unittest.cc b/video/rtp_video_stream_receiver_unittest.cc index 6ec7046bbb..d54d977331 100644 --- a/video/rtp_video_stream_receiver_unittest.cc +++ b/video/rtp_video_stream_receiver_unittest.cc @@ -517,8 +517,6 @@ TEST_F(RtpVideoStreamReceiverTest, ParseGenericDescriptorOnePacket) { RtpGenericFrameDescriptor generic_descriptor; generic_descriptor.SetFirstPacketInSubFrame(true); generic_descriptor.SetLastPacketInSubFrame(true); - generic_descriptor.SetFirstSubFrameInFrame(true); - generic_descriptor.SetLastSubFrameInFrame(true); generic_descriptor.SetFrameId(100); generic_descriptor.SetSpatialLayersBitmask(1 << kSpatialIndex); generic_descriptor.AddFrameDependencyDiff(90); @@ -564,8 +562,6 @@ TEST_F(RtpVideoStreamReceiverTest, ParseGenericDescriptorTwoPackets) { RtpGenericFrameDescriptor first_packet_descriptor; first_packet_descriptor.SetFirstPacketInSubFrame(true); first_packet_descriptor.SetLastPacketInSubFrame(false); - first_packet_descriptor.SetFirstSubFrameInFrame(true); - first_packet_descriptor.SetLastSubFrameInFrame(true); first_packet_descriptor.SetFrameId(100); first_packet_descriptor.SetSpatialLayersBitmask(1 << kSpatialIndex); first_packet_descriptor.SetResolution(480, 360); @@ -586,8 +582,6 @@ TEST_F(RtpVideoStreamReceiverTest, ParseGenericDescriptorTwoPackets) { RtpGenericFrameDescriptor second_packet_descriptor; second_packet_descriptor.SetFirstPacketInSubFrame(false); second_packet_descriptor.SetLastPacketInSubFrame(true); - second_packet_descriptor.SetFirstSubFrameInFrame(true); - second_packet_descriptor.SetLastSubFrameInFrame(true); EXPECT_TRUE(second_packet.SetExtension( second_packet_descriptor));