aboutsummaryrefslogtreecommitdiff
path: root/video/end_to_end_tests/codec_tests.cc
diff options
context:
space:
mode:
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)