aboutsummaryrefslogtreecommitdiff
path: root/video/end_to_end_tests/codec_tests.cc
diff options
context:
space:
mode:
authorSebastian Jansson <srte@webrtc.org>2018-09-27 17:45:16 +0200
committerCommit Bot <commit-bot@chromium.org>2018-09-27 16:04:50 +0000
commit377b26ec65beb100ec33aae8eafbd3eaa49cebbb (patch)
tree589d4f0503e7e195b1e0dbada50ca2aff09eded4 /video/end_to_end_tests/codec_tests.cc
parentdc8c981dcbf7b036ee9b208fffaba80efde77b00 (diff)
downloadwebrtc-377b26ec65beb100ec33aae8eafbd3eaa49cebbb.tar.gz
Revert "Replace VideoDecoder with VideoDecoderFactory in VideoReceiveStream config."
This reverts commit efb94d57eb88638c323d93dddc281390dada5021. Reason for revert: Investigate and fix build errors. Original change's description: > Revert "Revert "Replace VideoDecoder with VideoDecoderFactory in VideoReceiveStream config."" > > This reverts commit 7961dc2dbdb3391a003d63630d5107e258ff3e78. > > Reason for revert: WebRTC does not build > > Original change's description: > > Revert "Replace VideoDecoder with VideoDecoderFactory in VideoReceiveStream config." > > > > This reverts commit 529d0d9795b81dbed5e4231f15d3752a5fc0df32. > > > > Reason for revert: Seems to break perf tests, likely some breakage in video_quality_tests decoder configuration. > > > > Original change's description: > > > Replace VideoDecoder with VideoDecoderFactory in VideoReceiveStream config. > > > > > > Preparation for deleting EnableFrameRecordning, and also a step > > > towards landing of the new VideoStreamDecoder. > > > > > > Bug: webrtc:9106 > > > Change-Id: I50964ee458b08a702ec69b82a62e4995c57cee82 > > > Reviewed-on: https://webrtc-review.googlesource.com/97660 > > > Commit-Queue: Niels Moller <nisse@webrtc.org> > > > Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> > > > Reviewed-by: Anders Carlsson <andersc@webrtc.org> > > > Reviewed-by: Sebastian Jansson <srte@webrtc.org> > > > Reviewed-by: Erik Språng <sprang@webrtc.org> > > > Cr-Commit-Position: refs/heads/master@{#24861} > > > > TBR=brandtr@webrtc.org,nisse@webrtc.org,andersc@webrtc.org,sprang@webrtc.org,philipel@webrtc.org,srte@webrtc.org > > > > Change-Id: Id34e4a3452a7dbc06167a4df5bb4c2825ebd7bd0 > > No-Presubmit: true > > No-Tree-Checks: true > > No-Try: true > > Bug: webrtc:9106 > > Reviewed-on: https://webrtc-review.googlesource.com/102421 > > Reviewed-by: Niels Moller <nisse@webrtc.org> > > Commit-Queue: Niels Moller <nisse@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#24866} > > TBR=brandtr@webrtc.org,nisse@webrtc.org,andersc@webrtc.org,sprang@webrtc.org,philipel@webrtc.org,srte@webrtc.org > > Change-Id: I23a439e1ceef79109b1f966b80b2663203968269 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:9106 > Reviewed-on: https://webrtc-review.googlesource.com/102422 > Reviewed-by: Oleh Prypin <oprypin@webrtc.org> > Commit-Queue: Oleh Prypin <oprypin@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#24867} TBR=brandtr@webrtc.org,oprypin@webrtc.org,nisse@webrtc.org,andersc@webrtc.org,sprang@webrtc.org,philipel@webrtc.org,srte@webrtc.org Change-Id: I9dafbc070e7f39dcb0ddbd61cb620164258fe894 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9106 Reviewed-on: https://webrtc-review.googlesource.com/102460 Reviewed-by: Sebastian Jansson <srte@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24872}
Diffstat (limited to 'video/end_to_end_tests/codec_tests.cc')
-rw-r--r--video/end_to_end_tests/codec_tests.cc67
1 files changed, 22 insertions, 45 deletions
diff --git a/video/end_to_end_tests/codec_tests.cc b/video/end_to_end_tests/codec_tests.cc
index fad3ac7ede..5c5255567a 100644
--- a/video/end_to_end_tests/codec_tests.cc
+++ b/video/end_to_end_tests/codec_tests.cc
@@ -39,7 +39,7 @@ class CodecObserver : public test::EndToEndTest,
VideoRotation rotation_to_test,
const std::string& payload_name,
VideoEncoderFactory* encoder_factory,
- VideoDecoderFactory* decoder_factory)
+ std::unique_ptr<webrtc::VideoDecoder> decoder)
: EndToEndTest(4 * CodecEndToEndTest::kDefaultTimeoutMs),
// TODO(hta): This timeout (120 seconds) is excessive.
// https://bugs.webrtc.org/6830
@@ -47,7 +47,7 @@ class CodecObserver : public test::EndToEndTest,
expected_rotation_(rotation_to_test),
payload_name_(payload_name),
encoder_factory_(encoder_factory),
- decoder_factory_(decoder_factory),
+ decoder_(std::move(decoder)),
frame_counter_(0) {}
void PerformTest() override {
@@ -70,7 +70,7 @@ class CodecObserver : public test::EndToEndTest,
send_config->rtp.payload_type;
(*receive_configs)[0].decoders[0].video_format =
SdpVideoFormat(send_config->rtp.payload_name);
- (*receive_configs)[0].decoders[0].decoder_factory = decoder_factory_;
+ (*receive_configs)[0].decoders[0].decoder = decoder_.get();
}
void OnFrame(const VideoFrame& video_frame) override {
@@ -89,7 +89,7 @@ class CodecObserver : public test::EndToEndTest,
VideoRotation expected_rotation_;
std::string payload_name_;
VideoEncoderFactory* encoder_factory_;
- VideoDecoderFactory* decoder_factory_;
+ std::unique_ptr<webrtc::VideoDecoder> decoder_;
int frame_counter_;
};
@@ -101,20 +101,16 @@ INSTANTIATE_TEST_CASE_P(GenericDescriptor,
TEST_P(CodecEndToEndTest, SendsAndReceivesVP8) {
test::FunctionVideoEncoderFactory encoder_factory(
[]() { return VP8Encoder::Create(); });
- test::FunctionVideoDecoderFactory decoder_factory(
- []() { return VP8Decoder::Create(); });
CodecObserver test(5, kVideoRotation_0, "VP8", &encoder_factory,
- &decoder_factory);
+ VP8Decoder::Create());
RunBaseTest(&test);
}
TEST_P(CodecEndToEndTest, SendsAndReceivesVP8Rotation90) {
test::FunctionVideoEncoderFactory encoder_factory(
[]() { return VP8Encoder::Create(); });
- test::FunctionVideoDecoderFactory decoder_factory(
- []() { return VP8Decoder::Create(); });
CodecObserver test(5, kVideoRotation_90, "VP8", &encoder_factory,
- &decoder_factory);
+ VP8Decoder::Create());
RunBaseTest(&test);
}
@@ -122,58 +118,47 @@ TEST_P(CodecEndToEndTest, SendsAndReceivesVP8Rotation90) {
TEST_P(CodecEndToEndTest, SendsAndReceivesVP9) {
test::FunctionVideoEncoderFactory encoder_factory(
[]() { return VP9Encoder::Create(); });
- test::FunctionVideoDecoderFactory decoder_factory(
- []() { return VP9Decoder::Create(); });
CodecObserver test(500, kVideoRotation_0, "VP9", &encoder_factory,
- &decoder_factory);
+ VP9Decoder::Create());
RunBaseTest(&test);
}
TEST_P(CodecEndToEndTest, SendsAndReceivesVP9VideoRotation90) {
test::FunctionVideoEncoderFactory encoder_factory(
[]() { return VP9Encoder::Create(); });
- test::FunctionVideoDecoderFactory decoder_factory(
- []() { return VP9Decoder::Create(); });
CodecObserver test(5, kVideoRotation_90, "VP9", &encoder_factory,
- &decoder_factory);
+ VP9Decoder::Create());
RunBaseTest(&test);
}
// Mutiplex tests are using VP9 as the underlying implementation.
TEST_P(CodecEndToEndTest, SendsAndReceivesMultiplex) {
InternalEncoderFactory internal_encoder_factory;
- InternalDecoderFactory internal_decoder_factory;
+ InternalDecoderFactory decoder_factory;
test::FunctionVideoEncoderFactory encoder_factory(
[&internal_encoder_factory]() {
return absl::make_unique<MultiplexEncoderAdapter>(
&internal_encoder_factory, SdpVideoFormat(cricket::kVp9CodecName));
});
- test::FunctionVideoDecoderFactory decoder_factory(
- [&internal_decoder_factory]() {
- return absl::make_unique<MultiplexDecoderAdapter>(
- &internal_decoder_factory, SdpVideoFormat(cricket::kVp9CodecName));
- });
-
- CodecObserver test(5, kVideoRotation_0, "multiplex", &encoder_factory,
- &decoder_factory);
+ CodecObserver test(
+ 5, kVideoRotation_0, "multiplex", &encoder_factory,
+ absl::make_unique<MultiplexDecoderAdapter>(
+ &decoder_factory, SdpVideoFormat(cricket::kVp9CodecName)));
RunBaseTest(&test);
}
TEST_P(CodecEndToEndTest, SendsAndReceivesMultiplexVideoRotation90) {
InternalEncoderFactory internal_encoder_factory;
- InternalDecoderFactory internal_decoder_factory;
+ InternalDecoderFactory decoder_factory;
test::FunctionVideoEncoderFactory encoder_factory(
[&internal_encoder_factory]() {
return absl::make_unique<MultiplexEncoderAdapter>(
&internal_encoder_factory, SdpVideoFormat(cricket::kVp9CodecName));
});
- test::FunctionVideoDecoderFactory decoder_factory(
- [&internal_decoder_factory]() {
- return absl::make_unique<MultiplexDecoderAdapter>(
- &internal_decoder_factory, SdpVideoFormat(cricket::kVp9CodecName));
- });
- CodecObserver test(5, kVideoRotation_90, "multiplex", &encoder_factory,
- &decoder_factory);
+ CodecObserver test(
+ 5, kVideoRotation_90, "multiplex", &encoder_factory,
+ absl::make_unique<MultiplexDecoderAdapter>(
+ &decoder_factory, SdpVideoFormat(cricket::kVp9CodecName)));
RunBaseTest(&test);
}
@@ -198,20 +183,16 @@ INSTANTIATE_TEST_CASE_P(
TEST_P(EndToEndTestH264, SendsAndReceivesH264) {
test::FunctionVideoEncoderFactory encoder_factory(
[]() { return H264Encoder::Create(cricket::VideoCodec("H264")); });
- test::FunctionVideoDecoderFactory decoder_factory(
- []() { return H264Decoder::Create(); });
CodecObserver test(500, kVideoRotation_0, "H264", &encoder_factory,
- &decoder_factory);
+ H264Decoder::Create());
RunBaseTest(&test);
}
TEST_P(EndToEndTestH264, SendsAndReceivesH264VideoRotation90) {
test::FunctionVideoEncoderFactory encoder_factory(
[]() { return H264Encoder::Create(cricket::VideoCodec("H264")); });
- test::FunctionVideoDecoderFactory decoder_factory(
- []() { return H264Decoder::Create(); });
CodecObserver test(5, kVideoRotation_90, "H264", &encoder_factory,
- &decoder_factory);
+ H264Decoder::Create());
RunBaseTest(&test);
}
@@ -220,10 +201,8 @@ TEST_P(EndToEndTestH264, SendsAndReceivesH264PacketizationMode0) {
codec.SetParam(cricket::kH264FmtpPacketizationMode, "0");
test::FunctionVideoEncoderFactory encoder_factory(
[codec]() { return H264Encoder::Create(codec); });
- test::FunctionVideoDecoderFactory decoder_factory(
- []() { return H264Decoder::Create(); });
CodecObserver test(500, kVideoRotation_0, "H264", &encoder_factory,
- &decoder_factory);
+ H264Decoder::Create());
RunBaseTest(&test);
}
@@ -232,10 +211,8 @@ TEST_P(EndToEndTestH264, SendsAndReceivesH264PacketizationMode1) {
codec.SetParam(cricket::kH264FmtpPacketizationMode, "1");
test::FunctionVideoEncoderFactory encoder_factory(
[codec]() { return H264Encoder::Create(codec); });
- test::FunctionVideoDecoderFactory decoder_factory(
- []() { return H264Decoder::Create(); });
CodecObserver test(500, kVideoRotation_0, "H264", &encoder_factory,
- &decoder_factory);
+ H264Decoder::Create());
RunBaseTest(&test);
}
#endif // defined(WEBRTC_USE_H264)