diff --git a/test/layer_filtering_transport.cc b/test/layer_filtering_transport.cc index 3a2a97ef5a..a8a337da65 100644 --- a/test/layer_filtering_transport.cc +++ b/test/layer_filtering_transport.cc @@ -36,6 +36,21 @@ LayerFilteringTransport::LayerFilteringTransport( selected_sl_(selected_sl), discarded_last_packet_(false) {} +LayerFilteringTransport::LayerFilteringTransport( + SingleThreadedTaskQueueForTesting* task_queue, + std::unique_ptr pipe, + Call* send_call, + uint8_t vp8_video_payload_type, + uint8_t vp9_video_payload_type, + int selected_tl, + int selected_sl) + : DirectTransport(task_queue, std::move(pipe), send_call), + vp8_video_payload_type_(vp8_video_payload_type), + vp9_video_payload_type_(vp9_video_payload_type), + selected_tl_(selected_tl), + selected_sl_(selected_sl), + discarded_last_packet_(false) {} + bool LayerFilteringTransport::DiscardedLastPacket() const { return discarded_last_packet_; } diff --git a/test/layer_filtering_transport.h b/test/layer_filtering_transport.h index abbc86a9ec..fe3b3d6d70 100644 --- a/test/layer_filtering_transport.h +++ b/test/layer_filtering_transport.h @@ -31,6 +31,13 @@ class LayerFilteringTransport : public test::DirectTransport { int selected_tl, int selected_sl, const std::map& payload_type_map); + LayerFilteringTransport(SingleThreadedTaskQueueForTesting* task_queue, + std::unique_ptr pipe, + Call* send_call, + uint8_t vp8_video_payload_type, + uint8_t vp9_video_payload_type, + int selected_tl, + int selected_sl); bool DiscardedLastPacket() const; bool SendRtp(const uint8_t* data, size_t length, diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc index f56426f11a..571c3a89d5 100644 --- a/video/video_quality_test.cc +++ b/video/video_quality_test.cc @@ -1764,6 +1764,20 @@ void VideoQualityTest::CreateCapturer() { RTC_DCHECK(video_capturer_.get()); } +std::unique_ptr +VideoQualityTest::CreateSendTransport() { + return rtc::MakeUnique( + &task_queue_, params_.pipe, sender_call_.get(), kPayloadTypeVP8, + kPayloadTypeVP9, params_.video.selected_tl, params_.ss.selected_sl, + payload_type_map_); +} + +std::unique_ptr +VideoQualityTest::CreateReceiveTransport() { + return rtc::MakeUnique( + &task_queue_, params_.pipe, receiver_call_.get(), payload_type_map_); +} + void VideoQualityTest::RunWithAnalyzer(const Params& params) { std::unique_ptr send_transport; std::unique_ptr recv_transport; @@ -1796,18 +1810,12 @@ void VideoQualityTest::RunWithAnalyzer(const Params& params) { Call::Config call_config(event_log_.get()); call_config.bitrate_config = params.call.call_bitrate_config; - task_queue_.SendTask([this, &call_config, &send_transport, - &recv_transport]() { - CreateCalls(call_config, call_config); - - send_transport = rtc::MakeUnique( - &task_queue_, params_.pipe, sender_call_.get(), kPayloadTypeVP8, - kPayloadTypeVP9, params_.video.selected_tl, params_.ss.selected_sl, - payload_type_map_); - - recv_transport = rtc::MakeUnique( - &task_queue_, params_.pipe, receiver_call_.get(), payload_type_map_); - }); + task_queue_.SendTask( + [this, &call_config, &send_transport, &recv_transport]() { + CreateCalls(call_config, call_config); + send_transport = CreateSendTransport(); + recv_transport = CreateReceiveTransport(); + }); std::string graph_title = params_.analyzer.graph_title; if (graph_title.empty()) diff --git a/video/video_quality_test.h b/video/video_quality_test.h index e0b3deae60..ddf4ecc5a4 100644 --- a/video/video_quality_test.h +++ b/video/video_quality_test.h @@ -18,6 +18,7 @@ #include "media/engine/simulcast_encoder_adapter.h" #include "test/call_test.h" #include "test/frame_generator.h" +#include "test/layer_filtering_transport.h" namespace webrtc { @@ -136,6 +137,9 @@ class VideoQualityTest : public test::CallTest { void StartEncodedFrameLogs(VideoSendStream* stream); void StartEncodedFrameLogs(VideoReceiveStream* stream); + virtual std::unique_ptr CreateSendTransport(); + virtual std::unique_ptr CreateReceiveTransport(); + // We need a more general capturer than the FrameGeneratorCapturer. std::unique_ptr video_capturer_; std::vector> thumbnail_capturers_;