diff --git a/test/pc/e2e/BUILD.gn b/test/pc/e2e/BUILD.gn index 8cede7029e..4e47ab599e 100644 --- a/test/pc/e2e/BUILD.gn +++ b/test/pc/e2e/BUILD.gn @@ -216,6 +216,7 @@ if (rtc_include_tests) { "../../../rtc_base:gunit_helpers", "../../../rtc_base:rtc_base", "../../../rtc_base:rtc_base_approved", + "../../../rtc_base:rtc_task_queue", "../../../rtc_base:safe_conversions", "../../../system_wrappers:system_wrappers", "../../../test:fileutils", diff --git a/test/pc/e2e/peer_connection_quality_test.cc b/test/pc/e2e/peer_connection_quality_test.cc index 7efb8116e3..8b360626a0 100644 --- a/test/pc/e2e/peer_connection_quality_test.cc +++ b/test/pc/e2e/peer_connection_quality_test.cc @@ -1,5 +1,3 @@ -#include - /* * Copyright (c) 2019 The WebRTC project authors. All Rights Reserved. * @@ -94,7 +92,7 @@ class FixturePeerConnectionObserver : public MockPeerConnectionObserver { PeerConnectionE2EQualityTest::PeerConnectionE2EQualityTest( std::unique_ptr analyzers) - : clock_(Clock::GetRealTimeClock()) { + : clock_(Clock::GetRealTimeClock()), task_queue_("pc_e2e_quality_test") { RTC_CHECK(analyzers); // Create default video quality analyzer. We will always create an analyzer, diff --git a/test/pc/e2e/peer_connection_quality_test.h b/test/pc/e2e/peer_connection_quality_test.h index be146f7fa3..23099a73be 100644 --- a/test/pc/e2e/peer_connection_quality_test.h +++ b/test/pc/e2e/peer_connection_quality_test.h @@ -15,6 +15,7 @@ #include #include "pc/test/frame_generator_capturer_video_track_source.h" +#include "rtc_base/task_queue.h" #include "rtc_base/thread.h" #include "system_wrappers/include/clock.h" #include "test/pc/e2e/analyzer/video/single_process_encoded_image_id_injector.h" @@ -92,6 +93,10 @@ class PeerConnectionE2EQualityTest std::vector> video_writers_; std::vector>> output_video_sinks_; + + // Must be the last field, so it will be deleted first, because tasks + // in the TaskQueue can access other fields of the instance of this class. + rtc::TaskQueue task_queue_; }; } // namespace test