diff options
Diffstat (limited to 'video/end_to_end_tests/multi_codec_receive_tests.cc')
-rw-r--r-- | video/end_to_end_tests/multi_codec_receive_tests.cc | 83 |
1 files changed, 28 insertions, 55 deletions
diff --git a/video/end_to_end_tests/multi_codec_receive_tests.cc b/video/end_to_end_tests/multi_codec_receive_tests.cc index e13bc351ca..7399ef81a4 100644 --- a/video/end_to_end_tests/multi_codec_receive_tests.cc +++ b/video/end_to_end_tests/multi_codec_receive_tests.cc @@ -180,7 +180,6 @@ class MultiCodecReceiveTest : public test::CallTest { struct CodecConfig { std::string payload_name; VideoEncoderFactory* encoder_factory; - VideoDecoderFactory* decoder_factory; size_t num_temporal_layers; }; @@ -198,16 +197,18 @@ class MultiCodecReceiveTest : public test::CallTest { void MultiCodecReceiveTest::ConfigureDecoders( const std::vector<CodecConfig>& configs) { - video_receive_configs_[0].decoders.clear(); // Placing the payload names in a std::set retains the unique names only. std::set<std::string> unique_payload_names; for (const auto& config : configs) - if (unique_payload_names.insert(config.payload_name).second) { - VideoReceiveStream::Decoder decoder = test::CreateMatchingDecoder( - PayloadNameToPayloadType(config.payload_name), config.payload_name); - decoder.decoder_factory = config.decoder_factory; + unique_payload_names.insert(config.payload_name); - video_receive_configs_[0].decoders.push_back(decoder); + video_receive_configs_[0].decoders.clear(); + for (const auto& payload_name : unique_payload_names) { + VideoReceiveStream::Decoder decoder = test::CreateMatchingDecoder( + PayloadNameToPayloadType(payload_name), payload_name); + allocated_decoders_.push_back( + std::unique_ptr<VideoDecoder>(decoder.decoder)); + video_receive_configs_[0].decoders.push_back(decoder); } } @@ -269,13 +270,9 @@ TEST_F(MultiCodecReceiveTest, SingleStreamReceivesVp8Vp9) { []() { return VP8Encoder::Create(); }); test::FunctionVideoEncoderFactory vp9_encoder_factory( []() { return VP9Encoder::Create(); }); - test::FunctionVideoDecoderFactory vp8_decoder_factory( - []() { return VP8Decoder::Create(); }); - test::FunctionVideoDecoderFactory vp9_decoder_factory( - []() { return VP9Decoder::Create(); }); - RunTestWithCodecs({{"VP8", &vp8_encoder_factory, &vp8_decoder_factory, 1}, - {"VP9", &vp9_encoder_factory, &vp9_decoder_factory, 1}, - {"VP8", &vp8_encoder_factory, &vp8_decoder_factory, 1}}); + RunTestWithCodecs({{"VP8", &vp8_encoder_factory, 1}, + {"VP9", &vp9_encoder_factory, 1}, + {"VP8", &vp8_encoder_factory, 1}}); } TEST_F(MultiCodecReceiveTest, SingleStreamReceivesVp8Vp9WithTl) { @@ -283,13 +280,9 @@ TEST_F(MultiCodecReceiveTest, SingleStreamReceivesVp8Vp9WithTl) { []() { return VP8Encoder::Create(); }); test::FunctionVideoEncoderFactory vp9_encoder_factory( []() { return VP9Encoder::Create(); }); - test::FunctionVideoDecoderFactory vp8_decoder_factory( - []() { return VP8Decoder::Create(); }); - test::FunctionVideoDecoderFactory vp9_decoder_factory( - []() { return VP9Decoder::Create(); }); - RunTestWithCodecs({{"VP8", &vp8_encoder_factory, &vp8_decoder_factory, 2}, - {"VP9", &vp9_encoder_factory, &vp9_decoder_factory, 2}, - {"VP8", &vp8_encoder_factory, &vp8_decoder_factory, 2}}); + RunTestWithCodecs({{"VP8", &vp8_encoder_factory, 2}, + {"VP9", &vp9_encoder_factory, 2}, + {"VP8", &vp8_encoder_factory, 2}}); } #if defined(WEBRTC_USE_H264) @@ -298,13 +291,9 @@ TEST_F(MultiCodecReceiveTest, SingleStreamReceivesVp8H264) { []() { return VP8Encoder::Create(); }); test::FunctionVideoEncoderFactory h264_encoder_factory( []() { return H264Encoder::Create(cricket::VideoCodec("H264")); }); - test::FunctionVideoDecoderFactory vp8_decoder_factory( - []() { return VP8Decoder::Create(); }); - test::FunctionVideoDecoderFactory h264_decoder_factory( - []() { return H264Decoder::Create(); }); - RunTestWithCodecs({{"VP8", &vp8_encoder_factory, &vp8_decoder_factory, 1}, - {"H264", &h264_encoder_factory, &h264_decoder_factory, 1}, - {"VP8", &vp8_encoder_factory, &vp8_decoder_factory, 1}}); + RunTestWithCodecs({{"VP8", &vp8_encoder_factory, 1}, + {"H264", &h264_encoder_factory, 1}, + {"VP8", &vp8_encoder_factory, 1}}); } TEST_F(MultiCodecReceiveTest, SingleStreamReceivesVp8H264WithTl) { @@ -312,13 +301,9 @@ TEST_F(MultiCodecReceiveTest, SingleStreamReceivesVp8H264WithTl) { []() { return VP8Encoder::Create(); }); test::FunctionVideoEncoderFactory h264_encoder_factory( []() { return H264Encoder::Create(cricket::VideoCodec("H264")); }); - test::FunctionVideoDecoderFactory vp8_decoder_factory( - []() { return VP8Decoder::Create(); }); - test::FunctionVideoDecoderFactory h264_decoder_factory( - []() { return H264Decoder::Create(); }); - RunTestWithCodecs({{"VP8", &vp8_encoder_factory, &vp8_decoder_factory, 3}, - {"H264", &h264_encoder_factory, &h264_decoder_factory, 1}, - {"VP8", &vp8_encoder_factory, &vp8_decoder_factory, 3}}); + RunTestWithCodecs({{"VP8", &vp8_encoder_factory, 3}, + {"H264", &h264_encoder_factory, 1}, + {"VP8", &vp8_encoder_factory, 3}}); } TEST_F(MultiCodecReceiveTest, SingleStreamReceivesVp8Vp9H264) { @@ -328,16 +313,10 @@ TEST_F(MultiCodecReceiveTest, SingleStreamReceivesVp8Vp9H264) { []() { return VP9Encoder::Create(); }); test::FunctionVideoEncoderFactory h264_encoder_factory( []() { return H264Encoder::Create(cricket::VideoCodec("H264")); }); - test::FunctionVideoDecoderFactory vp8_decoder_factory( - []() { return VP8Decoder::Create(); }); - test::FunctionVideoDecoderFactory vp9_decoder_factory( - []() { return VP9Decoder::Create(); }); - test::FunctionVideoDecoderFactory h264_decoder_factory( - []() { return H264Decoder::Create(); }); - RunTestWithCodecs({{"VP8", &vp8_encoder_factory, &vp8_decoder_factory, 1}, - {"VP9", &vp9_encoder_factory, &vp9_decoder_factory, 1}, - {"H264", &h264_encoder_factory, &h264_decoder_factory, 1}, - {"VP9", &vp9_encoder_factory, &vp9_decoder_factory, 1}}); + RunTestWithCodecs({{"VP8", &vp8_encoder_factory, 1}, + {"VP9", &vp9_encoder_factory, 1}, + {"H264", &h264_encoder_factory, 1}, + {"VP9", &vp9_encoder_factory, 1}}); } TEST_F(MultiCodecReceiveTest, SingleStreamReceivesVp8Vp9H264WithTl) { @@ -347,16 +326,10 @@ TEST_F(MultiCodecReceiveTest, SingleStreamReceivesVp8Vp9H264WithTl) { []() { return VP9Encoder::Create(); }); test::FunctionVideoEncoderFactory h264_encoder_factory( []() { return H264Encoder::Create(cricket::VideoCodec("H264")); }); - test::FunctionVideoDecoderFactory vp8_decoder_factory( - []() { return VP8Decoder::Create(); }); - test::FunctionVideoDecoderFactory vp9_decoder_factory( - []() { return VP9Decoder::Create(); }); - test::FunctionVideoDecoderFactory h264_decoder_factory( - []() { return H264Decoder::Create(); }); - RunTestWithCodecs({{"VP8", &vp8_encoder_factory, &vp8_decoder_factory, 3}, - {"VP9", &vp9_encoder_factory, &vp9_decoder_factory, 2}, - {"H264", &h264_encoder_factory, &h264_decoder_factory, 1}, - {"VP9", &vp9_encoder_factory, &vp9_decoder_factory, 3}}); + RunTestWithCodecs({{"VP8", &vp8_encoder_factory, 3}, + {"VP9", &vp9_encoder_factory, 2}, + {"H264", &h264_encoder_factory, 1}, + {"VP9", &vp9_encoder_factory, 3}}); } #endif // defined(WEBRTC_USE_H264) |