Revert of Use sps and pps to determine decodability of H.264 frames. (patchset #4 id:60001 of https://codereview.webrtc.org/2341713002/ )
Reason for revert:
Broke browser_tests, e.g., WebRtcVideoQualityBrowserTests/WebRtcVideoQualityBrowserTest.MANUAL_TestVideoQualityH264
Original issue's description:
> Use sps and pps to determine decodability of H.264 frames.
>
> NOPRESUBMIT=true
> BUG=webrtc:6208
> R=philipel@webrtc.org
>
> Committed: https://crrev.com/17b02633666f2f5d7e78767ad5674c728d639c26
> Cr-Commit-Position: refs/heads/master@{#14458}
TBR=philipel@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6208
Review-Url: https://codereview.webrtc.org/2381233004
Cr-Commit-Position: refs/heads/master@{#14460}
diff --git a/webrtc/modules/video_coding/jitter_buffer_unittest.cc b/webrtc/modules/video_coding/jitter_buffer_unittest.cc
index 425a4e9..c7108c1 100644
--- a/webrtc/modules/video_coding/jitter_buffer_unittest.cc
+++ b/webrtc/modules/video_coding/jitter_buffer_unittest.cc
@@ -12,9 +12,9 @@
#include <list>
#include <memory>
-#include <vector>
-#include "webrtc/common_video/h264/h264_common.h"
+#include "webrtc/test/gtest.h"
+#include "webrtc/test/gmock.h"
#include "webrtc/modules/video_coding/frame_buffer.h"
#include "webrtc/modules/video_coding/jitter_buffer.h"
#include "webrtc/modules/video_coding/media_opt_util.h"
@@ -26,8 +26,6 @@
#include "webrtc/system_wrappers/include/metrics.h"
#include "webrtc/system_wrappers/include/metrics_default.h"
#include "webrtc/test/field_trial.h"
-#include "webrtc/test/gmock.h"
-#include "webrtc/test/gtest.h"
namespace webrtc {
@@ -1162,89 +1160,6 @@
jitter_buffer_->ReleaseFrame(frame_out);
}
-TEST_F(TestBasicJitterBuffer, SpsAndPpsHandling) {
- jitter_buffer_->SetDecodeErrorMode(kNoErrors);
-
- packet_->timestamp = timestamp_;
- packet_->frameType = kVideoFrameKey;
- packet_->isFirstPacket = true;
- packet_->markerBit = true;
- packet_->codec = kVideoCodecH264;
- packet_->video_header.codec = kRtpVideoH264;
- packet_->video_header.codecHeader.H264.nalu_type = H264::NaluType::kIdr;
- packet_->video_header.codecHeader.H264.nalus[0].type = H264::NaluType::kIdr;
- packet_->video_header.codecHeader.H264.nalus[0].sps_id = -1;
- packet_->video_header.codecHeader.H264.nalus[0].pps_id = 0;
- packet_->video_header.codecHeader.H264.nalus_length = 1;
- bool retransmitted = false;
- EXPECT_EQ(kCompleteSession,
- jitter_buffer_->InsertPacket(*packet_, &retransmitted));
- // Not decodable since sps and pps are missing.
- EXPECT_EQ(nullptr, DecodeCompleteFrame());
-
- timestamp_ += 3000;
- packet_->timestamp = timestamp_;
- ++seq_num_;
- packet_->seqNum = seq_num_;
- packet_->frameType = kVideoFrameKey;
- packet_->isFirstPacket = true;
- packet_->markerBit = false;
- packet_->codec = kVideoCodecH264;
- packet_->video_header.codec = kRtpVideoH264;
- packet_->video_header.codecHeader.H264.nalu_type = H264::NaluType::kStapA;
- packet_->video_header.codecHeader.H264.nalus[0].type = H264::NaluType::kSps;
- packet_->video_header.codecHeader.H264.nalus[0].sps_id = 0;
- packet_->video_header.codecHeader.H264.nalus[0].pps_id = -1;
- packet_->video_header.codecHeader.H264.nalus[1].type = H264::NaluType::kPps;
- packet_->video_header.codecHeader.H264.nalus[1].sps_id = 0;
- packet_->video_header.codecHeader.H264.nalus[1].pps_id = 0;
- packet_->video_header.codecHeader.H264.nalus_length = 2;
- // Not complete since the marker bit hasn't been received.
- EXPECT_EQ(kIncomplete,
- jitter_buffer_->InsertPacket(*packet_, &retransmitted));
-
- ++seq_num_;
- packet_->seqNum = seq_num_;
- packet_->frameType = kVideoFrameKey;
- packet_->isFirstPacket = false;
- packet_->markerBit = true;
- packet_->codec = kVideoCodecH264;
- packet_->video_header.codec = kRtpVideoH264;
- packet_->video_header.codecHeader.H264.nalu_type = H264::NaluType::kIdr;
- packet_->video_header.codecHeader.H264.nalus[0].type = H264::NaluType::kIdr;
- packet_->video_header.codecHeader.H264.nalus[0].sps_id = -1;
- packet_->video_header.codecHeader.H264.nalus[0].pps_id = 0;
- packet_->video_header.codecHeader.H264.nalus_length = 1;
- // Complete and decodable since the pps and sps are received in the first
- // packet of this frame.
- EXPECT_EQ(kCompleteSession,
- jitter_buffer_->InsertPacket(*packet_, &retransmitted));
- VCMEncodedFrame* frame_out = DecodeCompleteFrame();
- ASSERT_NE(nullptr, frame_out);
- jitter_buffer_->ReleaseFrame(frame_out);
-
- timestamp_ += 3000;
- packet_->timestamp = timestamp_;
- ++seq_num_;
- packet_->seqNum = seq_num_;
- packet_->frameType = kVideoFrameDelta;
- packet_->isFirstPacket = true;
- packet_->markerBit = true;
- packet_->codec = kVideoCodecH264;
- packet_->video_header.codec = kRtpVideoH264;
- packet_->video_header.codecHeader.H264.nalu_type = H264::NaluType::kSlice;
- packet_->video_header.codecHeader.H264.nalus[0].type = H264::NaluType::kSlice;
- packet_->video_header.codecHeader.H264.nalus[0].sps_id = -1;
- packet_->video_header.codecHeader.H264.nalus[0].pps_id = 0;
- packet_->video_header.codecHeader.H264.nalus_length = 1;
- // Complete and decodable since sps, pps and key frame has been received.
- EXPECT_EQ(kCompleteSession,
- jitter_buffer_->InsertPacket(*packet_, &retransmitted));
- frame_out = DecodeCompleteFrame();
- ASSERT_NE(nullptr, frame_out);
- jitter_buffer_->ReleaseFrame(frame_out);
-}
-
// Test threshold conditions of decodable state.
TEST_F(TestBasicJitterBuffer, PacketLossWithSelectiveErrorsThresholdCheck) {
jitter_buffer_->SetDecodeErrorMode(kSelectiveErrors);
@@ -2718,4 +2633,5 @@
nack_list = jitter_buffer_->GetNackList(&extended);
EXPECT_EQ(0u, nack_list.size());
}
+
} // namespace webrtc