Allow injection of NW models into VideoQualityTest
Bug: b/67487983
Change-Id: Ife299dded29681406b2521edf5a7bf4577017974
Reviewed-on: https://webrtc-review.googlesource.com/21600
Commit-Queue: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20684}
diff --git a/test/layer_filtering_transport.cc b/test/layer_filtering_transport.cc
index 3a2a97e..a8a337d 100644
--- a/test/layer_filtering_transport.cc
+++ b/test/layer_filtering_transport.cc
@@ -36,6 +36,21 @@
selected_sl_(selected_sl),
discarded_last_packet_(false) {}
+LayerFilteringTransport::LayerFilteringTransport(
+ SingleThreadedTaskQueueForTesting* task_queue,
+ std::unique_ptr<FakeNetworkPipe> 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 abbc86a..fe3b3d6 100644
--- a/test/layer_filtering_transport.h
+++ b/test/layer_filtering_transport.h
@@ -31,6 +31,13 @@
int selected_tl,
int selected_sl,
const std::map<uint8_t, MediaType>& payload_type_map);
+ LayerFilteringTransport(SingleThreadedTaskQueueForTesting* task_queue,
+ std::unique_ptr<FakeNetworkPipe> 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 f56426f..571c3a8 100644
--- a/video/video_quality_test.cc
+++ b/video/video_quality_test.cc
@@ -1764,6 +1764,20 @@
RTC_DCHECK(video_capturer_.get());
}
+std::unique_ptr<test::LayerFilteringTransport>
+VideoQualityTest::CreateSendTransport() {
+ return rtc::MakeUnique<test::LayerFilteringTransport>(
+ &task_queue_, params_.pipe, sender_call_.get(), kPayloadTypeVP8,
+ kPayloadTypeVP9, params_.video.selected_tl, params_.ss.selected_sl,
+ payload_type_map_);
+}
+
+std::unique_ptr<test::DirectTransport>
+VideoQualityTest::CreateReceiveTransport() {
+ return rtc::MakeUnique<test::DirectTransport>(
+ &task_queue_, params_.pipe, receiver_call_.get(), payload_type_map_);
+}
+
void VideoQualityTest::RunWithAnalyzer(const Params& params) {
std::unique_ptr<test::LayerFilteringTransport> send_transport;
std::unique_ptr<test::DirectTransport> recv_transport;
@@ -1796,18 +1810,12 @@
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<test::LayerFilteringTransport>(
- &task_queue_, params_.pipe, sender_call_.get(), kPayloadTypeVP8,
- kPayloadTypeVP9, params_.video.selected_tl, params_.ss.selected_sl,
- payload_type_map_);
-
- recv_transport = rtc::MakeUnique<test::DirectTransport>(
- &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 e0b3dea..ddf4ecc 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 @@
void StartEncodedFrameLogs(VideoSendStream* stream);
void StartEncodedFrameLogs(VideoReceiveStream* stream);
+ virtual std::unique_ptr<test::LayerFilteringTransport> CreateSendTransport();
+ virtual std::unique_ptr<test::DirectTransport> CreateReceiveTransport();
+
// We need a more general capturer than the FrameGeneratorCapturer.
std::unique_ptr<test::VideoCapturer> video_capturer_;
std::vector<std::unique_ptr<test::VideoCapturer>> thumbnail_capturers_;