Make SetFirstSubFrameInFrame and SetLastSubFrameInFrame protected

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 <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26360}
This commit is contained in:
Elad Alon
2019-01-21 14:16:59 +01:00
committed by Commit Bot
parent 3fdf90d621
commit 067dc86c8a
3 changed files with 6 additions and 10 deletions

View File

@ -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<const uint8_t> 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;

View File

@ -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(

View File

@ -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<RtpGenericFrameDescriptorExtension>(
second_packet_descriptor));