| Index: webrtc/modules/video_coding/rtp_frame_reference_finder_unittest.cc
|
| diff --git a/webrtc/modules/video_coding/rtp_frame_reference_finder_unittest.cc b/webrtc/modules/video_coding/rtp_frame_reference_finder_unittest.cc
|
| index 928785c107f2936d2d7438c929640de152bb4953..551b06b26536ca5344e6e547d8a98546360a2cb4 100644
|
| --- a/webrtc/modules/video_coding/rtp_frame_reference_finder_unittest.cc
|
| +++ b/webrtc/modules/video_coding/rtp_frame_reference_finder_unittest.cc
|
| @@ -83,8 +83,12 @@ class TestRtpFrameReferenceFinder : public ::testing::Test,
|
| packet.codec = kVideoCodecGeneric;
|
| packet.seqNum = seq_num_start;
|
| packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta;
|
| + ref_packet_buffer_->InsertPacket(packet);
|
|
|
| + packet.seqNum = seq_num_end;
|
| + packet.markerBit = true;
|
| ref_packet_buffer_->InsertPacket(packet);
|
| +
|
| std::unique_ptr<RtpFrameObject> frame(new RtpFrameObject(
|
| ref_packet_buffer_, seq_num_start, seq_num_end, 0, 0, 0));
|
| reference_finder_->ManageFrame(std::move(frame));
|
| @@ -100,13 +104,20 @@ class TestRtpFrameReferenceFinder : public ::testing::Test,
|
| VCMPacket packet;
|
| packet.codec = kVideoCodecVP8;
|
| packet.seqNum = seq_num_start;
|
| + packet.markerBit = (seq_num_start == seq_num_end);
|
| packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta;
|
| packet.video_header.codecHeader.VP8.pictureId = pid % (1 << 15);
|
| packet.video_header.codecHeader.VP8.temporalIdx = tid;
|
| packet.video_header.codecHeader.VP8.tl0PicIdx = tl0;
|
| packet.video_header.codecHeader.VP8.layerSync = sync;
|
| -
|
| ref_packet_buffer_->InsertPacket(packet);
|
| +
|
| + if (seq_num_start != seq_num_end) {
|
| + packet.seqNum = seq_num_end;
|
| + packet.markerBit = true;
|
| + ref_packet_buffer_->InsertPacket(packet);
|
| + }
|
| +
|
| std::unique_ptr<RtpFrameObject> frame(new RtpFrameObject(
|
| ref_packet_buffer_, seq_num_start, seq_num_end, 0, 0, 0));
|
| reference_finder_->ManageFrame(std::move(frame));
|
| @@ -125,6 +136,7 @@ class TestRtpFrameReferenceFinder : public ::testing::Test,
|
| packet.timestamp = pid;
|
| packet.codec = kVideoCodecVP9;
|
| packet.seqNum = seq_num_start;
|
| + packet.markerBit = (seq_num_start == seq_num_end);
|
| packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta;
|
| packet.video_header.codecHeader.VP9.flexible_mode = false;
|
| packet.video_header.codecHeader.VP9.picture_id = pid % (1 << 15);
|
| @@ -136,8 +148,15 @@ class TestRtpFrameReferenceFinder : public ::testing::Test,
|
| packet.video_header.codecHeader.VP9.ss_data_available = true;
|
| packet.video_header.codecHeader.VP9.gof = *ss;
|
| }
|
| -
|
| ref_packet_buffer_->InsertPacket(packet);
|
| +
|
| + if (seq_num_start != seq_num_end) {
|
| + packet.markerBit = true;
|
| + packet.video_header.codecHeader.VP9.ss_data_available = false;
|
| + packet.seqNum = seq_num_end;
|
| + ref_packet_buffer_->InsertPacket(packet);
|
| + }
|
| +
|
| std::unique_ptr<RtpFrameObject> frame(new RtpFrameObject(
|
| ref_packet_buffer_, seq_num_start, seq_num_end, 0, 0, 0));
|
| reference_finder_->ManageFrame(std::move(frame));
|
| @@ -156,6 +175,7 @@ class TestRtpFrameReferenceFinder : public ::testing::Test,
|
| packet.timestamp = pid;
|
| packet.codec = kVideoCodecVP9;
|
| packet.seqNum = seq_num_start;
|
| + packet.markerBit = (seq_num_start == seq_num_end);
|
| packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta;
|
| packet.video_header.codecHeader.VP9.inter_layer_predicted = inter;
|
| packet.video_header.codecHeader.VP9.flexible_mode = true;
|
| @@ -166,8 +186,14 @@ class TestRtpFrameReferenceFinder : public ::testing::Test,
|
| packet.video_header.codecHeader.VP9.num_ref_pics = refs.size();
|
| for (size_t i = 0; i < refs.size(); ++i)
|
| packet.video_header.codecHeader.VP9.pid_diff[i] = refs[i];
|
| -
|
| ref_packet_buffer_->InsertPacket(packet);
|
| +
|
| + if (seq_num_start != seq_num_end) {
|
| + packet.seqNum = seq_num_end;
|
| + packet.markerBit = true;
|
| + ref_packet_buffer_->InsertPacket(packet);
|
| + }
|
| +
|
| std::unique_ptr<RtpFrameObject> frame(new RtpFrameObject(
|
| ref_packet_buffer_, seq_num_start, seq_num_end, 0, 0, 0));
|
| reference_finder_->ManageFrame(std::move(frame));
|
| @@ -1233,6 +1259,7 @@ TEST_F(TestRtpFrameReferenceFinder, Vp9PidFix_PidJumpsBackwardThenForward) {
|
| packet.timestamp = 0;
|
| packet.codec = kVideoCodecVP9;
|
| packet.frameType = kVideoFrameKey;
|
| + packet.markerBit = true;
|
| packet.video_header.codecHeader.VP9.flexible_mode = false;
|
| packet.video_header.codecHeader.VP9.picture_id = 1;
|
| packet.video_header.codecHeader.VP9.temporal_idx = 0;
|
| @@ -1286,6 +1313,7 @@ TEST_F(TestRtpFrameReferenceFinder, Vp9PidFix_Tl0JumpsBackwardThenForward) {
|
| packet.timestamp = 0;
|
| packet.codec = kVideoCodecVP9;
|
| packet.frameType = kVideoFrameKey;
|
| + packet.markerBit = true;
|
| packet.video_header.codecHeader.VP9.flexible_mode = false;
|
| packet.video_header.codecHeader.VP9.picture_id = 0;
|
| packet.video_header.codecHeader.VP9.temporal_idx = 0;
|
| @@ -1351,6 +1379,7 @@ TEST_F(TestRtpFrameReferenceFinder, Vp9PidFix_PidSmallJumpForward) {
|
| packet.timestamp = 0;
|
| packet.codec = kVideoCodecVP9;
|
| packet.frameType = kVideoFrameKey;
|
| + packet.markerBit = true;
|
| packet.video_header.codecHeader.VP9.flexible_mode = false;
|
| packet.video_header.codecHeader.VP9.picture_id = 1;
|
| packet.video_header.codecHeader.VP9.temporal_idx = 0;
|
| @@ -1413,6 +1442,7 @@ TEST_F(TestRtpFrameReferenceFinder, Vp9PidFix_DropOldFrame) {
|
| packet.timestamp = 0;
|
| packet.codec = kVideoCodecVP9;
|
| packet.frameType = kVideoFrameKey;
|
| + packet.markerBit = true;
|
| packet.video_header.codecHeader.VP9.flexible_mode = false;
|
| packet.video_header.codecHeader.VP9.picture_id = 1;
|
| packet.video_header.codecHeader.VP9.temporal_idx = 0;
|
|
|