Replace SingleThreadedTaskQueueForTesting::SendTask usage with ::webrtc::SendTask
Bug: webrtc:10933
Change-Id: I60738434b46e77b4644173ad168bc0efa58459b6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156001
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29551}
diff --git a/call/BUILD.gn b/call/BUILD.gn
index 7d85196..f6cf691 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -409,6 +409,7 @@
"../rtc_base:checks",
"../rtc_base:rate_limiter",
"../rtc_base:rtc_base_approved",
+ "../rtc_base:task_queue_for_test",
"../system_wrappers",
"../test:audio_codec_mocks",
"../test:direct_transport",
@@ -457,6 +458,7 @@
"../rtc_base",
"../rtc_base:checks",
"../rtc_base:rtc_base_approved",
+ "../rtc_base:task_queue_for_test",
"../system_wrappers",
"../system_wrappers:metrics",
"../test:direct_transport",
diff --git a/call/bitrate_estimator_tests.cc b/call/bitrate_estimator_tests.cc
index 8fa3a57..ae2a6b6 100644
--- a/call/bitrate_estimator_tests.cc
+++ b/call/bitrate_estimator_tests.cc
@@ -18,6 +18,7 @@
#include "rtc_base/checks.h"
#include "rtc_base/event.h"
#include "rtc_base/logging.h"
+#include "rtc_base/task_queue_for_test.h"
#include "rtc_base/thread_annotations.h"
#include "test/call_test.h"
#include "test/direct_transport.h"
@@ -102,7 +103,7 @@
virtual ~BitrateEstimatorTest() { EXPECT_TRUE(streams_.empty()); }
virtual void SetUp() {
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
CreateCalls();
send_transport_.reset(new test::DirectTransport(
@@ -145,7 +146,7 @@
}
virtual void TearDown() {
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
for (auto* stream : streams_) {
stream->StopSending();
delete stream;
@@ -248,7 +249,7 @@
"RemoteBitrateEstimatorSingleStream: Instantiating.";
TEST_F(BitrateEstimatorTest, InstantiatesTOFPerDefaultForVideo) {
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
GetVideoSendConfig()->rtp.extensions.push_back(
RtpExtension(RtpExtension::kTimestampOffsetUri, kTOFExtensionId));
receiver_log_.PushExpectedLogLine(kSingleStreamLog);
@@ -259,7 +260,7 @@
}
TEST_F(BitrateEstimatorTest, ImmediatelySwitchToASTForVideo) {
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
GetVideoSendConfig()->rtp.extensions.push_back(
RtpExtension(RtpExtension::kAbsSendTimeUri, kASTExtensionId));
receiver_log_.PushExpectedLogLine(kSingleStreamLog);
@@ -272,7 +273,7 @@
}
TEST_F(BitrateEstimatorTest, SwitchesToASTForVideo) {
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
GetVideoSendConfig()->rtp.extensions.push_back(
RtpExtension(RtpExtension::kTimestampOffsetUri, kTOFExtensionId));
receiver_log_.PushExpectedLogLine(kSingleStreamLog);
@@ -281,7 +282,7 @@
});
EXPECT_TRUE(receiver_log_.Wait());
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
GetVideoSendConfig()->rtp.extensions[0] =
RtpExtension(RtpExtension::kAbsSendTimeUri, kASTExtensionId);
receiver_log_.PushExpectedLogLine("Switching to absolute send time RBE.");
@@ -293,7 +294,7 @@
// This test is flaky. See webrtc:5790.
TEST_F(BitrateEstimatorTest, DISABLED_SwitchesToASTThenBackToTOFForVideo) {
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
GetVideoSendConfig()->rtp.extensions.push_back(
RtpExtension(RtpExtension::kTimestampOffsetUri, kTOFExtensionId));
receiver_log_.PushExpectedLogLine(kSingleStreamLog);
@@ -303,7 +304,7 @@
});
EXPECT_TRUE(receiver_log_.Wait());
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
GetVideoSendConfig()->rtp.extensions[0] =
RtpExtension(RtpExtension::kAbsSendTimeUri, kASTExtensionId);
receiver_log_.PushExpectedLogLine(kAbsSendTimeLog);
@@ -312,7 +313,7 @@
});
EXPECT_TRUE(receiver_log_.Wait());
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
GetVideoSendConfig()->rtp.extensions[0] =
RtpExtension(RtpExtension::kTimestampOffsetUri, kTOFExtensionId);
receiver_log_.PushExpectedLogLine(kAbsSendTimeLog);
diff --git a/call/call_perf_tests.cc b/call/call_perf_tests.cc
index 41e61dc..f6d6f78 100644
--- a/call/call_perf_tests.cc
+++ b/call/call_perf_tests.cc
@@ -28,6 +28,7 @@
#include "modules/audio_device/include/test_audio_device.h"
#include "modules/audio_mixer/audio_mixer_impl.h"
#include "rtc_base/checks.h"
+#include "rtc_base/task_queue_for_test.h"
#include "rtc_base/thread.h"
#include "rtc_base/thread_annotations.h"
#include "system_wrappers/include/metrics.h"
@@ -182,7 +183,7 @@
AudioReceiveStream* audio_receive_stream;
std::unique_ptr<DriftingClock> drifting_clock;
- task_queue_.SendTask([&]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [&]() {
metrics::Reset();
rtc::scoped_refptr<TestAudioDeviceModule> fake_audio_device =
TestAudioDeviceModule::Create(
@@ -297,7 +298,7 @@
EXPECT_TRUE(observer.Wait())
<< "Timed out while waiting for audio and video to be synchronized.";
- task_queue_.SendTask([&]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [&]() {
audio_send_stream->Stop();
audio_receive_stream->Stop();
@@ -932,8 +933,9 @@
int64_t avg_rtt = 0;
for (int i = 0; i < kBitrateMeasurements; i++) {
Call::Stats call_stats;
- task_queue_->SendTask(
- [this, &call_stats]() { call_stats = sender_call_->GetStats(); });
+ SendTask(RTC_FROM_HERE, task_queue_, [this, &call_stats]() {
+ call_stats = sender_call_->GetStats();
+ });
avg_rtt += call_stats.rtt_ms;
rtc::Thread::SleepMs(quick_perf_test ? kShortDelayMs
: kBitrateMeasurementMs);
diff --git a/call/rampup_tests.cc b/call/rampup_tests.cc
index 2485aa8..2741ebf 100644
--- a/call/rampup_tests.cc
+++ b/call/rampup_tests.cc
@@ -23,6 +23,7 @@
#include "rtc_base/logging.h"
#include "rtc_base/platform_thread.h"
#include "rtc_base/string_encode.h"
+#include "rtc_base/task_queue_for_test.h"
#include "rtc_base/time_utils.h"
#include "test/encoder_settings.h"
#include "test/field_trial.h"
@@ -93,7 +94,7 @@
RampUpTester::~RampUpTester() {
// Special case for WebRTC-QuickPerfTest/Enabled/
- task_queue_->SendTask([this]() {
+ SendTask(RTC_FROM_HERE, task_queue_, [this]() {
if (pending_task_ !=
static_cast<test::DEPRECATED_SingleThreadedTaskQueueForTesting::TaskId>(
-1)) {
@@ -380,7 +381,7 @@
// Stop polling stats.
// Corner case for field_trials=WebRTC-QuickPerfTest/Enabled/
- task_queue_->SendTask([this]() {
+ SendTask(RTC_FROM_HERE, task_queue_, [this]() {
if (pending_task_ !=
static_cast<test::DEPRECATED_SingleThreadedTaskQueueForTesting::TaskId>(
-1)) {
diff --git a/rtc_base/task_queue_for_test.h b/rtc_base/task_queue_for_test.h
index cb44ee2..7844dc4 100644
--- a/rtc_base/task_queue_for_test.h
+++ b/rtc_base/task_queue_for_test.h
@@ -25,7 +25,7 @@
namespace webrtc {
template <typename Closure>
-void SendTask(TaskQueueBase* task_queue, Closure&& task, rtc::Location loc) {
+void SendTask(rtc::Location loc, TaskQueueBase* task_queue, Closure&& task) {
RTC_CHECK(!task_queue->IsCurrent())
<< "Called SendTask to a queue from the same queue at " << loc.ToString();
rtc::Event event;
@@ -64,7 +64,7 @@
// a task executes on the task queue.
template <class Closure>
void SendTask(Closure&& task, rtc::Location loc) {
- ::webrtc::SendTask(Get(), std::forward<Closure>(task), loc);
+ ::webrtc::SendTask(loc, Get(), std::forward<Closure>(task));
}
};
diff --git a/test/BUILD.gn b/test/BUILD.gn
index b5542dd..64eff47 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -388,6 +388,7 @@
"../modules/rtp_rtcp",
"../modules/video_coding:simulcast_test_fixture_impl",
"../rtc_base:rtc_base_approved",
+ "../rtc_base:task_queue_for_test",
"../rtc_base/system:file_wrapper",
"../test:single_threaded_task_queue",
"pc/e2e:e2e_unittests",
@@ -795,6 +796,7 @@
"../rtc_base:checks",
"../rtc_base:rtc_base_approved",
"../rtc_base:rtc_numerics",
+ "../rtc_base:task_queue_for_test",
"../system_wrappers",
"../system_wrappers:field_trial",
"../video",
diff --git a/test/call_test.cc b/test/call_test.cc
index 31e4e64..51ddaa3 100644
--- a/test/call_test.cc
+++ b/test/call_test.cc
@@ -24,6 +24,7 @@
#include "modules/audio_mixer/audio_mixer_impl.h"
#include "rtc_base/checks.h"
#include "rtc_base/event.h"
+#include "rtc_base/task_queue_for_test.h"
#include "test/fake_encoder.h"
#include "test/testsupport/file_utils.h"
@@ -63,7 +64,7 @@
// cleanup). However, there are some tests that don't use the class that way
// hence we need this special handling for cleaning up.
if (task_queue_.IsRunning()) {
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
fake_send_audio_device_ = nullptr;
fake_recv_audio_device_ = nullptr;
video_sources_.clear();
@@ -95,7 +96,7 @@
}
void CallTest::RunBaseTest(BaseTest* test) {
- task_queue_.SendTask([this, test]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this, test]() {
num_video_streams_ = test->GetNumVideoStreams();
num_audio_streams_ = test->GetNumAudioStreams();
num_flexfec_streams_ = test->GetNumFlexfecStreams();
@@ -195,7 +196,7 @@
test->PerformTest();
- task_queue_.SendTask([this, test]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this, test]() {
Stop();
test->OnStreamsStopped();
DestroyStreams();
diff --git a/test/single_threaded_task_queue.h b/test/single_threaded_task_queue.h
index 433d9ea..3845829 100644
--- a/test/single_threaded_task_queue.h
+++ b/test/single_threaded_task_queue.h
@@ -61,15 +61,6 @@
return PostDelayed(ToQueuedTask(std::move(task)), delay_ms);
}
- // Send one task to the queue. The function does not return until the task
- // has finished executing. No support for canceling the task.
- // TODO(bugs.webrtc.org/10933): Remove this function in favor of free SendTask
- // to reduce direct mentioning of the SingleThreadedTaskQueueForTesting class.
- template <typename Closure>
- void SendTask(Closure&& task) {
- ::webrtc::SendTask(this, std::forward<Closure>(task), RTC_FROM_HERE);
- }
-
// Given an identifier to the task, attempts to eject it from the queue.
// Returns true if the task was found and cancelled. Failure possible
// only for invalid task IDs, or for tasks which have already been executed.
diff --git a/test/single_threaded_task_queue_unittest.cc b/test/single_threaded_task_queue_unittest.cc
index dedc78b..9e2304d 100644
--- a/test/single_threaded_task_queue_unittest.cc
+++ b/test/single_threaded_task_queue_unittest.cc
@@ -16,6 +16,7 @@
#include "api/task_queue/task_queue_test.h"
#include "rtc_base/event.h"
+#include "rtc_base/task_queue_for_test.h"
#include "test/gtest.h"
namespace webrtc {
@@ -320,7 +321,7 @@
std::atomic<bool> executed(false);
- task_queue.SendTask([&executed]() {
+ SendTask(RTC_FROM_HERE, &task_queue, [&executed]() {
// Intentionally delay, so that if SendTask didn't block, the sender thread
// would have time to read |executed|.
rtc::Event delay;
diff --git a/test/win/run_loop_win.cc b/test/win/run_loop_win.cc
index 94a65cf..93bd90d 100644
--- a/test/win/run_loop_win.cc
+++ b/test/win/run_loop_win.cc
@@ -12,6 +12,7 @@
#include <conio.h>
#include <stdio.h>
+#include "rtc_base/task_queue_for_test.h"
#include "test/run_loop.h"
namespace webrtc {
@@ -23,7 +24,7 @@
while (!_kbhit() || _getch() != '\r') {
// Drive the message loop for the thread running the task_queue
- task_queue.SendTask([&]() {
+ SendTask(RTC_FROM_HERE, &task_queue, [&]() {
MSG msg;
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
TranslateMessage(&msg);
diff --git a/video/BUILD.gn b/video/BUILD.gn
index 4f4ad96..5aa64e9 100644
--- a/video/BUILD.gn
+++ b/video/BUILD.gn
@@ -292,6 +292,7 @@
"../rtc_base:rtc_base_approved",
"../rtc_base:rtc_base_tests_utils",
"../rtc_base:rtc_numerics",
+ "../rtc_base:task_queue_for_test",
"../system_wrappers",
"../test:fake_video_codecs",
"../test:fileutils",
diff --git a/video/end_to_end_tests/bandwidth_tests.cc b/video/end_to_end_tests/bandwidth_tests.cc
index a8a1623..03ac8b2 100644
--- a/video/end_to_end_tests/bandwidth_tests.cc
+++ b/video/end_to_end_tests/bandwidth_tests.cc
@@ -18,6 +18,7 @@
#include "call/simulated_network.h"
#include "modules/rtp_rtcp/include/rtp_rtcp.h"
#include "rtc_base/rate_limiter.h"
+#include "rtc_base/task_queue_for_test.h"
#include "system_wrappers/include/sleep.h"
#include "test/call_test.h"
#include "test/fake_encoder.h"
@@ -328,7 +329,7 @@
ASSERT_TRUE(Wait())
<< "Timed out while waiting for encoder SetRates() call.";
- task_queue_->SendTask([this]() {
+ SendTask(RTC_FROM_HERE, task_queue_, [this]() {
WaitForEncoderTargetBitrateMatchStats();
send_stream_->Stop();
WaitForStatsReportZeroTargetBitrate();
diff --git a/video/end_to_end_tests/call_operation_tests.cc b/video/end_to_end_tests/call_operation_tests.cc
index 85cbaa8..923eebd 100644
--- a/video/end_to_end_tests/call_operation_tests.cc
+++ b/video/end_to_end_tests/call_operation_tests.cc
@@ -12,6 +12,7 @@
#include "api/test/simulated_network.h"
#include "call/fake_network_pipe.h"
#include "call/simulated_network.h"
+#include "rtc_base/task_queue_for_test.h"
#include "system_wrappers/include/sleep.h"
#include "test/call_test.h"
#include "test/field_trial.h"
@@ -93,54 +94,57 @@
std::unique_ptr<test::DirectTransport> sender_transport;
std::unique_ptr<test::DirectTransport> receiver_transport;
- task_queue_.SendTask([this, &renderer, &frame_forwarder, &sender_transport,
- &receiver_transport]() {
- CreateCalls();
+ SendTask(
+ RTC_FROM_HERE, &task_queue_,
+ [this, &renderer, &frame_forwarder, &sender_transport,
+ &receiver_transport]() {
+ CreateCalls();
- sender_transport = std::make_unique<test::DirectTransport>(
- &task_queue_,
- std::make_unique<FakeNetworkPipe>(
- Clock::GetRealTimeClock(),
- std::make_unique<SimulatedNetwork>(BuiltInNetworkBehaviorConfig())),
- sender_call_.get(), payload_type_map_);
- receiver_transport = std::make_unique<test::DirectTransport>(
- &task_queue_,
- std::make_unique<FakeNetworkPipe>(
- Clock::GetRealTimeClock(),
- std::make_unique<SimulatedNetwork>(BuiltInNetworkBehaviorConfig())),
- receiver_call_.get(), payload_type_map_);
- sender_transport->SetReceiver(receiver_call_->Receiver());
- receiver_transport->SetReceiver(sender_call_->Receiver());
+ sender_transport = std::make_unique<test::DirectTransport>(
+ &task_queue_,
+ std::make_unique<FakeNetworkPipe>(
+ Clock::GetRealTimeClock(), std::make_unique<SimulatedNetwork>(
+ BuiltInNetworkBehaviorConfig())),
+ sender_call_.get(), payload_type_map_);
+ receiver_transport = std::make_unique<test::DirectTransport>(
+ &task_queue_,
+ std::make_unique<FakeNetworkPipe>(
+ Clock::GetRealTimeClock(), std::make_unique<SimulatedNetwork>(
+ BuiltInNetworkBehaviorConfig())),
+ receiver_call_.get(), payload_type_map_);
+ sender_transport->SetReceiver(receiver_call_->Receiver());
+ receiver_transport->SetReceiver(sender_call_->Receiver());
- CreateSendConfig(1, 0, 0, sender_transport.get());
- CreateMatchingReceiveConfigs(receiver_transport.get());
+ CreateSendConfig(1, 0, 0, sender_transport.get());
+ CreateMatchingReceiveConfigs(receiver_transport.get());
- video_receive_configs_[0].renderer = &renderer;
+ video_receive_configs_[0].renderer = &renderer;
- CreateVideoStreams();
- Start();
+ CreateVideoStreams();
+ Start();
- // Create frames that are smaller than the send width/height, this is done
- // to check that the callbacks are done after processing video.
- std::unique_ptr<test::FrameGenerator> frame_generator(
- test::FrameGenerator::CreateSquareGenerator(
- kWidth, kHeight, absl::nullopt, absl::nullopt));
- GetVideoSendStream()->SetSource(&frame_forwarder,
- DegradationPreference::MAINTAIN_FRAMERATE);
+ // Create frames that are smaller than the send width/height, this is
+ // done to check that the callbacks are done after processing video.
+ std::unique_ptr<test::FrameGenerator> frame_generator(
+ test::FrameGenerator::CreateSquareGenerator(
+ kWidth, kHeight, absl::nullopt, absl::nullopt));
+ GetVideoSendStream()->SetSource(
+ &frame_forwarder, DegradationPreference::MAINTAIN_FRAMERATE);
- frame_forwarder.IncomingCapturedFrame(*frame_generator->NextFrame());
- });
+ frame_forwarder.IncomingCapturedFrame(*frame_generator->NextFrame());
+ });
EXPECT_TRUE(renderer.Wait())
<< "Timed out while waiting for the frame to render.";
- task_queue_.SendTask([this, &sender_transport, &receiver_transport]() {
- Stop();
- DestroyStreams();
- sender_transport.reset();
- receiver_transport.reset();
- DestroyCalls();
- });
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this, &sender_transport, &receiver_transport]() {
+ Stop();
+ DestroyStreams();
+ sender_transport.reset();
+ receiver_transport.reset();
+ DestroyCalls();
+ });
}
TEST_F(CallOperationEndToEndTest, TransmitsFirstFrame) {
@@ -159,49 +163,52 @@
std::unique_ptr<test::DirectTransport> sender_transport;
std::unique_ptr<test::DirectTransport> receiver_transport;
- task_queue_.SendTask([this, &renderer, &frame_generator, &frame_forwarder,
- &sender_transport, &receiver_transport]() {
- CreateCalls();
+ SendTask(
+ RTC_FROM_HERE, &task_queue_,
+ [this, &renderer, &frame_generator, &frame_forwarder, &sender_transport,
+ &receiver_transport]() {
+ CreateCalls();
- sender_transport = std::make_unique<test::DirectTransport>(
- &task_queue_,
- std::make_unique<FakeNetworkPipe>(
- Clock::GetRealTimeClock(),
- std::make_unique<SimulatedNetwork>(BuiltInNetworkBehaviorConfig())),
- sender_call_.get(), payload_type_map_);
- receiver_transport = std::make_unique<test::DirectTransport>(
- &task_queue_,
- std::make_unique<FakeNetworkPipe>(
- Clock::GetRealTimeClock(),
- std::make_unique<SimulatedNetwork>(BuiltInNetworkBehaviorConfig())),
- receiver_call_.get(), payload_type_map_);
- sender_transport->SetReceiver(receiver_call_->Receiver());
- receiver_transport->SetReceiver(sender_call_->Receiver());
+ sender_transport = std::make_unique<test::DirectTransport>(
+ &task_queue_,
+ std::make_unique<FakeNetworkPipe>(
+ Clock::GetRealTimeClock(), std::make_unique<SimulatedNetwork>(
+ BuiltInNetworkBehaviorConfig())),
+ sender_call_.get(), payload_type_map_);
+ receiver_transport = std::make_unique<test::DirectTransport>(
+ &task_queue_,
+ std::make_unique<FakeNetworkPipe>(
+ Clock::GetRealTimeClock(), std::make_unique<SimulatedNetwork>(
+ BuiltInNetworkBehaviorConfig())),
+ receiver_call_.get(), payload_type_map_);
+ sender_transport->SetReceiver(receiver_call_->Receiver());
+ receiver_transport->SetReceiver(sender_call_->Receiver());
- CreateSendConfig(1, 0, 0, sender_transport.get());
- CreateMatchingReceiveConfigs(receiver_transport.get());
- video_receive_configs_[0].renderer = &renderer;
+ CreateSendConfig(1, 0, 0, sender_transport.get());
+ CreateMatchingReceiveConfigs(receiver_transport.get());
+ video_receive_configs_[0].renderer = &renderer;
- CreateVideoStreams();
- Start();
+ CreateVideoStreams();
+ Start();
- frame_generator = test::FrameGenerator::CreateSquareGenerator(
- kDefaultWidth, kDefaultHeight, absl::nullopt, absl::nullopt);
- GetVideoSendStream()->SetSource(&frame_forwarder,
- DegradationPreference::MAINTAIN_FRAMERATE);
- frame_forwarder.IncomingCapturedFrame(*frame_generator->NextFrame());
- });
+ frame_generator = test::FrameGenerator::CreateSquareGenerator(
+ kDefaultWidth, kDefaultHeight, absl::nullopt, absl::nullopt);
+ GetVideoSendStream()->SetSource(
+ &frame_forwarder, DegradationPreference::MAINTAIN_FRAMERATE);
+ frame_forwarder.IncomingCapturedFrame(*frame_generator->NextFrame());
+ });
EXPECT_TRUE(renderer.Wait())
<< "Timed out while waiting for the frame to render.";
- task_queue_.SendTask([this, &sender_transport, &receiver_transport]() {
- Stop();
- DestroyStreams();
- sender_transport.reset();
- receiver_transport.reset();
- DestroyCalls();
- });
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this, &sender_transport, &receiver_transport]() {
+ Stop();
+ DestroyStreams();
+ sender_transport.reset();
+ receiver_transport.reset();
+ DestroyCalls();
+ });
}
} // namespace webrtc
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 b809751..487034e 100644
--- a/video/end_to_end_tests/multi_codec_receive_tests.cc
+++ b/video/end_to_end_tests/multi_codec_receive_tests.cc
@@ -18,6 +18,7 @@
#include "modules/video_coding/codecs/h264/include/h264.h"
#include "modules/video_coding/codecs/vp8/include/vp8.h"
#include "modules/video_coding/codecs/vp9/include/vp9.h"
+#include "rtc_base/task_queue_for_test.h"
#include "test/call_test.h"
#include "test/gmock.h"
#include "test/gtest.h"
@@ -127,7 +128,7 @@
class MultiCodecReceiveTest : public test::CallTest {
public:
MultiCodecReceiveTest() {
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
CreateCalls();
send_transport_.reset(new test::PacketTransport(
@@ -149,7 +150,7 @@
}
virtual ~MultiCodecReceiveTest() {
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
send_transport_.reset();
receive_transport_.reset();
DestroyCalls();
@@ -208,7 +209,7 @@
EXPECT_TRUE(!configs.empty());
// Create and start call.
- task_queue_.SendTask([this, &configs]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this, &configs]() {
CreateSendConfig(1, 0, 0, send_transport_.get());
ConfigureEncoder(configs[0]);
CreateMatchingReceiveConfigs(receive_transport_.get());
@@ -224,7 +225,7 @@
for (size_t i = 1; i < configs.size(); ++i) {
// Recreate VideoSendStream with new config (codec, temporal layers).
- task_queue_.SendTask([this, i, &configs]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this, i, &configs]() {
DestroyVideoSendStreams();
observer_.Reset(PayloadNameToPayloadType(configs[i].payload_name));
@@ -237,7 +238,7 @@
EXPECT_TRUE(observer_.Wait()) << "Timed out waiting for frames.";
}
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
Stop();
DestroyStreams();
});
diff --git a/video/end_to_end_tests/multi_stream_tester.cc b/video/end_to_end_tests/multi_stream_tester.cc
index a515b0f..33f67e6 100644
--- a/video/end_to_end_tests/multi_stream_tester.cc
+++ b/video/end_to_end_tests/multi_stream_tester.cc
@@ -25,6 +25,7 @@
#include "call/simulated_network.h"
#include "media/engine/internal_decoder_factory.h"
#include "modules/video_coding/codecs/vp8/include/vp8.h"
+#include "rtc_base/task_queue_for_test.h"
#include "test/call_test.h"
#include "test/encoder_settings.h"
@@ -64,7 +65,7 @@
CreateBuiltinVideoBitrateAllocatorFactory();
InternalDecoderFactory decoder_factory;
- task_queue_->SendTask([&]() {
+ SendTask(RTC_FROM_HERE, task_queue_, [&]() {
sender_call = absl::WrapUnique(Call::Create(config));
receiver_call = absl::WrapUnique(Call::Create(config));
sender_transport = CreateSendTransport(task_queue_, sender_call.get());
@@ -125,7 +126,7 @@
Wait();
- task_queue_->SendTask([&]() {
+ SendTask(RTC_FROM_HERE, task_queue_, [&]() {
for (size_t i = 0; i < kNumStreams; ++i) {
frame_generators[i]->Stop();
sender_call->DestroyVideoSendStream(send_streams[i]);
diff --git a/video/end_to_end_tests/network_state_tests.cc b/video/end_to_end_tests/network_state_tests.cc
index df7c980..a81aa5f 100644
--- a/video/end_to_end_tests/network_state_tests.cc
+++ b/video/end_to_end_tests/network_state_tests.cc
@@ -14,6 +14,7 @@
#include "api/video_codecs/video_encoder.h"
#include "call/fake_network_pipe.h"
#include "call/simulated_network.h"
+#include "rtc_base/task_queue_for_test.h"
#include "system_wrappers/include/sleep.h"
#include "test/call_test.h"
#include "test/fake_encoder.h"
@@ -87,23 +88,25 @@
Transport* transport) {
test::VideoEncoderProxyFactory encoder_factory(encoder);
- task_queue_.SendTask([this, network_to_bring_up, &encoder_factory,
- transport]() {
- CreateSenderCall(Call::Config(send_event_log_.get()));
- sender_call_->SignalChannelNetworkState(network_to_bring_up, kNetworkUp);
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this, network_to_bring_up, &encoder_factory, transport]() {
+ CreateSenderCall(Call::Config(send_event_log_.get()));
+ sender_call_->SignalChannelNetworkState(network_to_bring_up,
+ kNetworkUp);
- CreateSendConfig(1, 0, 0, transport);
- GetVideoSendConfig()->encoder_settings.encoder_factory = &encoder_factory;
- CreateVideoStreams();
- CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth,
- kDefaultHeight);
+ CreateSendConfig(1, 0, 0, transport);
+ GetVideoSendConfig()->encoder_settings.encoder_factory =
+ &encoder_factory;
+ CreateVideoStreams();
+ CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth,
+ kDefaultHeight);
- Start();
- });
+ Start();
+ });
SleepMs(kSilenceTimeoutMs);
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
Stop();
DestroyStreams();
DestroyCalls();
@@ -115,28 +118,30 @@
Transport* transport) {
std::unique_ptr<test::DirectTransport> sender_transport;
- task_queue_.SendTask([this, &sender_transport, network_to_bring_up,
- transport]() {
- CreateCalls();
- receiver_call_->SignalChannelNetworkState(network_to_bring_up, kNetworkUp);
- sender_transport = std::make_unique<test::DirectTransport>(
- &task_queue_,
- std::make_unique<FakeNetworkPipe>(
- Clock::GetRealTimeClock(),
- std::make_unique<SimulatedNetwork>(BuiltInNetworkBehaviorConfig())),
- sender_call_.get(), payload_type_map_);
- sender_transport->SetReceiver(receiver_call_->Receiver());
- CreateSendConfig(1, 0, 0, sender_transport.get());
- CreateMatchingReceiveConfigs(transport);
- CreateVideoStreams();
- CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth,
- kDefaultHeight);
- Start();
- });
+ SendTask(
+ RTC_FROM_HERE, &task_queue_,
+ [this, &sender_transport, network_to_bring_up, transport]() {
+ CreateCalls();
+ receiver_call_->SignalChannelNetworkState(network_to_bring_up,
+ kNetworkUp);
+ sender_transport = std::make_unique<test::DirectTransport>(
+ &task_queue_,
+ std::make_unique<FakeNetworkPipe>(
+ Clock::GetRealTimeClock(), std::make_unique<SimulatedNetwork>(
+ BuiltInNetworkBehaviorConfig())),
+ sender_call_.get(), payload_type_map_);
+ sender_transport->SetReceiver(receiver_call_->Receiver());
+ CreateSendConfig(1, 0, 0, sender_transport.get());
+ CreateMatchingReceiveConfigs(transport);
+ CreateVideoStreams();
+ CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth,
+ kDefaultHeight);
+ Start();
+ });
SleepMs(kSilenceTimeoutMs);
- task_queue_.SendTask([this, &sender_transport]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this, &sender_transport]() {
Stop();
DestroyStreams();
sender_transport.reset();
@@ -217,7 +222,7 @@
EXPECT_TRUE(encoded_frames_.Wait(kDefaultTimeoutMs))
<< "No frames received by the encoder.";
- task_queue_->SendTask([this]() {
+ SendTask(RTC_FROM_HERE, task_queue_, [this]() {
// Wait for packets from both sender/receiver.
WaitForPacketsOrSilence(false, false);
diff --git a/video/end_to_end_tests/probing_tests.cc b/video/end_to_end_tests/probing_tests.cc
index 02e06d1..abdff44 100644
--- a/video/end_to_end_tests/probing_tests.cc
+++ b/video/end_to_end_tests/probing_tests.cc
@@ -14,6 +14,7 @@
#include "api/test/simulated_network.h"
#include "call/fake_network_pipe.h"
#include "call/simulated_network.h"
+#include "rtc_base/task_queue_for_test.h"
#include "test/call_test.h"
#include "test/field_trial.h"
#include "test/gtest.h"
@@ -82,8 +83,8 @@
break;
Call::Stats stats;
- task_queue_->SendTask(
- [this, &stats]() { stats = sender_call_->GetStats(); });
+ SendTask(RTC_FROM_HERE, task_queue_,
+ [this, &stats]() { stats = sender_call_->GetStats(); });
// Initial probing is done with a x3 and x6 multiplier of the start
// bitrate, so a x4 multiplier is a high enough threshold.
if (stats.send_bandwidth_bps > 4 * 300000) {
@@ -136,15 +137,15 @@
break;
Call::Stats stats;
- task_queue_->SendTask(
- [this, &stats]() { stats = sender_call_->GetStats(); });
+ SendTask(RTC_FROM_HERE, task_queue_,
+ [this, &stats]() { stats = sender_call_->GetStats(); });
switch (state_) {
case 0:
if (stats.send_bandwidth_bps > 5 * 300000) {
BitrateConstraints bitrate_config;
bitrate_config.max_bitrate_bps = 100000;
- task_queue_->SendTask([this, &bitrate_config]() {
+ SendTask(RTC_FROM_HERE, task_queue_, [this, &bitrate_config]() {
sender_call_->GetTransportControllerSend()
->SetSdpBitrateParameters(bitrate_config);
});
@@ -155,7 +156,7 @@
if (stats.send_bandwidth_bps < 110000) {
BitrateConstraints bitrate_config;
bitrate_config.max_bitrate_bps = 2500000;
- task_queue_->SendTask([this, &bitrate_config]() {
+ SendTask(RTC_FROM_HERE, task_queue_, [this, &bitrate_config]() {
sender_call_->GetTransportControllerSend()
->SetSdpBitrateParameters(bitrate_config);
});
@@ -243,8 +244,8 @@
break;
Call::Stats stats;
- task_queue_->SendTask(
- [this, &stats]() { stats = sender_call_->GetStats(); });
+ SendTask(RTC_FROM_HERE, task_queue_,
+ [this, &stats]() { stats = sender_call_->GetStats(); });
switch (state_) {
case 0:
@@ -284,7 +285,7 @@
// should trigger an allocation probe and fast ramp-up.
encoder_config_->max_bitrate_bps = 2000000;
encoder_config_->simulcast_layers[0].max_bitrate_bps = 1200000;
- task_queue_->SendTask([this]() {
+ SendTask(RTC_FROM_HERE, task_queue_, [this]() {
send_stream_->ReconfigureVideoEncoder(encoder_config_->Copy());
});
max_allocation_change_time_ms = clock_->TimeInMilliseconds();
diff --git a/video/end_to_end_tests/retransmission_tests.cc b/video/end_to_end_tests/retransmission_tests.cc
index b3f905b..266b719 100644
--- a/video/end_to_end_tests/retransmission_tests.cc
+++ b/video/end_to_end_tests/retransmission_tests.cc
@@ -17,6 +17,7 @@
#include "call/fake_network_pipe.h"
#include "call/simulated_network.h"
#include "modules/video_coding/codecs/vp8/include/vp8.h"
+#include "rtc_base/task_queue_for_test.h"
#include "system_wrappers/include/sleep.h"
#include "test/call_test.h"
#include "test/field_trial.h"
@@ -225,7 +226,7 @@
SleepMs(100);
}
ASSERT_TRUE(frame_decoded);
- task_queue_->SendTask([this]() { send_stream_->Stop(); });
+ SendTask(RTC_FROM_HERE, task_queue_, [this]() { send_stream_->Stop(); });
SleepMs(10000);
ASSERT_EQ(
1U, receive_stream_->GetStats().rtcp_packet_type_counts.pli_packets);
diff --git a/video/end_to_end_tests/rtp_rtcp_tests.cc b/video/end_to_end_tests/rtp_rtcp_tests.cc
index bc92b25..baea1e0 100644
--- a/video/end_to_end_tests/rtp_rtcp_tests.cc
+++ b/video/end_to_end_tests/rtp_rtcp_tests.cc
@@ -15,6 +15,7 @@
#include "call/simulated_network.h"
#include "modules/include/module_common_types_public.h"
#include "modules/video_coding/codecs/vp8/include/vp8.h"
+#include "rtc_base/task_queue_for_test.h"
#include "test/call_test.h"
#include "test/gtest.h"
#include "test/rtcp_packet_parser.h"
@@ -281,48 +282,52 @@
VideoEncoderConfig one_stream;
- task_queue_.SendTask([this, &observer, &send_transport, &receive_transport,
- &one_stream, use_rtx]() {
- CreateCalls();
+ SendTask(
+ RTC_FROM_HERE, &task_queue_,
+ [this, &observer, &send_transport, &receive_transport, &one_stream,
+ use_rtx]() {
+ CreateCalls();
- send_transport = std::make_unique<test::PacketTransport>(
- &task_queue_, sender_call_.get(), &observer,
- test::PacketTransport::kSender, payload_type_map_,
- std::make_unique<FakeNetworkPipe>(Clock::GetRealTimeClock(),
- std::make_unique<SimulatedNetwork>(
- BuiltInNetworkBehaviorConfig())));
- receive_transport = std::make_unique<test::PacketTransport>(
- &task_queue_, nullptr, &observer, test::PacketTransport::kReceiver,
- payload_type_map_,
- std::make_unique<FakeNetworkPipe>(Clock::GetRealTimeClock(),
- std::make_unique<SimulatedNetwork>(
- BuiltInNetworkBehaviorConfig())));
- send_transport->SetReceiver(receiver_call_->Receiver());
- receive_transport->SetReceiver(sender_call_->Receiver());
+ send_transport = std::make_unique<test::PacketTransport>(
+ &task_queue_, sender_call_.get(), &observer,
+ test::PacketTransport::kSender, payload_type_map_,
+ std::make_unique<FakeNetworkPipe>(
+ Clock::GetRealTimeClock(),
+ std::make_unique<SimulatedNetwork>(
+ BuiltInNetworkBehaviorConfig())));
+ receive_transport = std::make_unique<test::PacketTransport>(
+ &task_queue_, nullptr, &observer, test::PacketTransport::kReceiver,
+ payload_type_map_,
+ std::make_unique<FakeNetworkPipe>(
+ Clock::GetRealTimeClock(),
+ std::make_unique<SimulatedNetwork>(
+ BuiltInNetworkBehaviorConfig())));
+ send_transport->SetReceiver(receiver_call_->Receiver());
+ receive_transport->SetReceiver(sender_call_->Receiver());
- CreateSendConfig(kNumSimulcastStreams, 0, 0, send_transport.get());
+ CreateSendConfig(kNumSimulcastStreams, 0, 0, send_transport.get());
- if (use_rtx) {
- for (size_t i = 0; i < kNumSimulcastStreams; ++i) {
- GetVideoSendConfig()->rtp.rtx.ssrcs.push_back(kSendRtxSsrcs[i]);
- }
- GetVideoSendConfig()->rtp.rtx.payload_type = kSendRtxPayloadType;
- }
+ if (use_rtx) {
+ for (size_t i = 0; i < kNumSimulcastStreams; ++i) {
+ GetVideoSendConfig()->rtp.rtx.ssrcs.push_back(kSendRtxSsrcs[i]);
+ }
+ GetVideoSendConfig()->rtp.rtx.payload_type = kSendRtxPayloadType;
+ }
- GetVideoEncoderConfig()->video_stream_factory =
- new rtc::RefCountedObject<VideoStreamFactory>();
- // Use the same total bitrates when sending a single stream to avoid
- // lowering the bitrate estimate and requiring a subsequent rampup.
- one_stream = GetVideoEncoderConfig()->Copy();
- // one_stream.streams.resize(1);
- one_stream.number_of_streams = 1;
- CreateMatchingReceiveConfigs(receive_transport.get());
+ GetVideoEncoderConfig()->video_stream_factory =
+ new rtc::RefCountedObject<VideoStreamFactory>();
+ // Use the same total bitrates when sending a single stream to avoid
+ // lowering the bitrate estimate and requiring a subsequent rampup.
+ one_stream = GetVideoEncoderConfig()->Copy();
+ // one_stream.streams.resize(1);
+ one_stream.number_of_streams = 1;
+ CreateMatchingReceiveConfigs(receive_transport.get());
- CreateVideoStreams();
- CreateFrameGeneratorCapturer(30, 1280, 720);
+ CreateVideoStreams();
+ CreateFrameGeneratorCapturer(30, 1280, 720);
- Start();
- });
+ Start();
+ });
EXPECT_TRUE(observer.Wait())
<< "Timed out waiting for all SSRCs to send packets.";
@@ -330,7 +335,7 @@
// Test stream resetting more than once to make sure that the state doesn't
// get set once (this could be due to using std::map::insert for instance).
for (size_t i = 0; i < 3; ++i) {
- task_queue_.SendTask([&]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [&]() {
DestroyVideoSendStreams();
// Re-create VideoSendStream with only one stream.
@@ -352,7 +357,7 @@
EXPECT_TRUE(observer.Wait()) << "Timed out waiting for single RTP packet.";
// Reconfigure back to use all streams.
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
GetVideoSendStream()->ReconfigureVideoEncoder(
GetVideoEncoderConfig()->Copy());
});
@@ -361,14 +366,14 @@
<< "Timed out waiting for all SSRCs to send packets.";
// Reconfigure down to one stream.
- task_queue_.SendTask([this, &one_stream]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this, &one_stream]() {
GetVideoSendStream()->ReconfigureVideoEncoder(one_stream.Copy());
});
observer.ResetExpectedSsrcs(1);
EXPECT_TRUE(observer.Wait()) << "Timed out waiting for single RTP packet.";
// Reconfigure back to use all streams.
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
GetVideoSendStream()->ReconfigureVideoEncoder(
GetVideoEncoderConfig()->Copy());
});
@@ -377,13 +382,14 @@
<< "Timed out waiting for all SSRCs to send packets.";
}
- task_queue_.SendTask([this, &send_transport, &receive_transport]() {
- Stop();
- DestroyStreams();
- send_transport.reset();
- receive_transport.reset();
- DestroyCalls();
- });
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this, &send_transport, &receive_transport]() {
+ Stop();
+ DestroyStreams();
+ send_transport.reset();
+ receive_transport.reset();
+ DestroyCalls();
+ });
}
TEST_F(RtpRtcpEndToEndTest, RestartingSendStreamPreservesRtpState) {
@@ -477,7 +483,7 @@
test::FunctionVideoEncoderFactory encoder_factory(
[]() { return VP8Encoder::Create(); });
- task_queue_.SendTask([&]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [&]() {
CreateCalls();
BuiltInNetworkBehaviorConfig lossy_delayed_link;
@@ -555,7 +561,7 @@
// Initial test.
EXPECT_TRUE(observer.Wait()) << "Timed out waiting for packets.";
- task_queue_.SendTask([this, &observer]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this, &observer]() {
// Ensure monotonicity when the VideoSendStream is restarted.
Stop();
observer.ResetPacketCount();
@@ -564,7 +570,7 @@
EXPECT_TRUE(observer.Wait()) << "Timed out waiting for packets.";
- task_queue_.SendTask([this, &observer]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this, &observer]() {
// Ensure monotonicity when the VideoSendStream is recreated.
DestroyVideoSendStreams();
observer.ResetPacketCount();
@@ -576,12 +582,13 @@
EXPECT_TRUE(observer.Wait()) << "Timed out waiting for packets.";
// Cleanup.
- task_queue_.SendTask([this, &send_transport, &receive_transport]() {
- Stop();
- DestroyStreams();
- send_transport.reset();
- receive_transport.reset();
- DestroyCalls();
- });
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this, &send_transport, &receive_transport]() {
+ Stop();
+ DestroyStreams();
+ send_transport.reset();
+ receive_transport.reset();
+ DestroyCalls();
+ });
}
} // namespace webrtc
diff --git a/video/end_to_end_tests/ssrc_tests.cc b/video/end_to_end_tests/ssrc_tests.cc
index 07fafe6..47cb930 100644
--- a/video/end_to_end_tests/ssrc_tests.cc
+++ b/video/end_to_end_tests/ssrc_tests.cc
@@ -13,6 +13,7 @@
#include "api/test/simulated_network.h"
#include "call/fake_network_pipe.h"
#include "call/simulated_network.h"
+#include "rtc_base/task_queue_for_test.h"
#include "test/call_test.h"
#include "test/gtest.h"
#include "test/rtcp_packet_parser.h"
@@ -78,7 +79,8 @@
std::unique_ptr<test::DirectTransport> receive_transport;
std::unique_ptr<PacketInputObserver> input_observer;
- task_queue_.SendTask(
+ SendTask(
+ RTC_FROM_HERE, &task_queue_,
[this, &send_transport, &receive_transport, &input_observer]() {
CreateCalls();
@@ -114,13 +116,14 @@
// Wait() waits for a received packet.
EXPECT_TRUE(input_observer->Wait());
- task_queue_.SendTask([this, &send_transport, &receive_transport]() {
- Stop();
- DestroyStreams();
- send_transport.reset();
- receive_transport.reset();
- DestroyCalls();
- });
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this, &send_transport, &receive_transport]() {
+ Stop();
+ DestroyStreams();
+ send_transport.reset();
+ receive_transport.reset();
+ DestroyCalls();
+ });
}
void SsrcEndToEndTest::TestSendsSetSsrcs(size_t num_ssrcs,
diff --git a/video/end_to_end_tests/stats_tests.cc b/video/end_to_end_tests/stats_tests.cc
index 73f94b2..aeef144 100644
--- a/video/end_to_end_tests/stats_tests.cc
+++ b/video/end_to_end_tests/stats_tests.cc
@@ -19,6 +19,7 @@
#include "modules/rtp_rtcp/source/rtp_utility.h"
#include "modules/video_coding/include/video_coding_defines.h"
#include "rtc_base/strings/string_builder.h"
+#include "rtc_base/task_queue_for_test.h"
#include "system_wrappers/include/metrics.h"
#include "system_wrappers/include/sleep.h"
#include "test/call_test.h"
@@ -526,55 +527,60 @@
VideoEncoderConfig encoder_config_with_screenshare;
- task_queue_.SendTask([this, &test, &send_config, &recv_config,
- &encoder_config_with_screenshare]() {
- CreateSenderCall(send_config);
- CreateReceiverCall(recv_config);
+ SendTask(
+ RTC_FROM_HERE, &task_queue_,
+ [this, &test, &send_config, &recv_config,
+ &encoder_config_with_screenshare]() {
+ CreateSenderCall(send_config);
+ CreateReceiverCall(recv_config);
- receive_transport_ = test.CreateReceiveTransport(&task_queue_);
- send_transport_ =
- test.CreateSendTransport(&task_queue_, sender_call_.get());
- send_transport_->SetReceiver(receiver_call_->Receiver());
- receive_transport_->SetReceiver(sender_call_->Receiver());
+ receive_transport_ = test.CreateReceiveTransport(&task_queue_);
+ send_transport_ =
+ test.CreateSendTransport(&task_queue_, sender_call_.get());
+ send_transport_->SetReceiver(receiver_call_->Receiver());
+ receive_transport_->SetReceiver(sender_call_->Receiver());
- receiver_call_->SignalChannelNetworkState(MediaType::VIDEO, kNetworkUp);
- CreateSendConfig(1, 0, 0, send_transport_.get());
- CreateMatchingReceiveConfigs(receive_transport_.get());
+ receiver_call_->SignalChannelNetworkState(MediaType::VIDEO, kNetworkUp);
+ CreateSendConfig(1, 0, 0, send_transport_.get());
+ CreateMatchingReceiveConfigs(receive_transport_.get());
- // Modify send and receive configs.
- GetVideoSendConfig()->rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
- video_receive_configs_[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
- video_receive_configs_[0].renderer = &test;
- // RTT needed for RemoteNtpTimeEstimator for the receive stream.
- video_receive_configs_[0].rtp.rtcp_xr.receiver_reference_time_report = true;
- // Start with realtime video.
- GetVideoEncoderConfig()->content_type =
- VideoEncoderConfig::ContentType::kRealtimeVideo;
- // Second encoder config for the second part of the test uses screenshare
- encoder_config_with_screenshare = GetVideoEncoderConfig()->Copy();
- encoder_config_with_screenshare.content_type =
- VideoEncoderConfig::ContentType::kScreen;
+ // Modify send and receive configs.
+ GetVideoSendConfig()->rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
+ video_receive_configs_[0].rtp.nack.rtp_history_ms = kNackRtpHistoryMs;
+ video_receive_configs_[0].renderer = &test;
+ // RTT needed for RemoteNtpTimeEstimator for the receive stream.
+ video_receive_configs_[0].rtp.rtcp_xr.receiver_reference_time_report =
+ true;
+ // Start with realtime video.
+ GetVideoEncoderConfig()->content_type =
+ VideoEncoderConfig::ContentType::kRealtimeVideo;
+ // Second encoder config for the second part of the test uses
+ // screenshare
+ encoder_config_with_screenshare = GetVideoEncoderConfig()->Copy();
+ encoder_config_with_screenshare.content_type =
+ VideoEncoderConfig::ContentType::kScreen;
- CreateVideoStreams();
- CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth,
- kDefaultHeight);
- Start();
- });
+ CreateVideoStreams();
+ CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth,
+ kDefaultHeight);
+ Start();
+ });
test.PerformTest();
// Replace old send stream.
- task_queue_.SendTask([this, &encoder_config_with_screenshare]() {
- DestroyVideoSendStreams();
- CreateVideoSendStream(encoder_config_with_screenshare);
- SetVideoDegradation(DegradationPreference::BALANCED);
- GetVideoSendStream()->Start();
- });
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this, &encoder_config_with_screenshare]() {
+ DestroyVideoSendStreams();
+ CreateVideoSendStream(encoder_config_with_screenshare);
+ SetVideoDegradation(DegradationPreference::BALANCED);
+ GetVideoSendStream()->Start();
+ });
// Continue to run test but now with screenshare.
test.PerformTest();
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
Stop();
DestroyStreams();
send_transport_.reset();
@@ -717,40 +723,41 @@
std::unique_ptr<test::DirectTransport> sender_transport;
std::unique_ptr<test::DirectTransport> receiver_transport;
- task_queue_.SendTask([this, &sender_transport, &receiver_transport]() {
- BuiltInNetworkBehaviorConfig config;
- config.queue_delay_ms = kSendDelayMs;
- CreateCalls();
- sender_transport = std::make_unique<test::DirectTransport>(
- &task_queue_,
- std::make_unique<FakeNetworkPipe>(
- Clock::GetRealTimeClock(),
- std::make_unique<SimulatedNetwork>(config)),
- sender_call_.get(), payload_type_map_);
- config.queue_delay_ms = kReceiveDelayMs;
- receiver_transport = std::make_unique<test::DirectTransport>(
- &task_queue_,
- std::make_unique<FakeNetworkPipe>(
- Clock::GetRealTimeClock(),
- std::make_unique<SimulatedNetwork>(config)),
- receiver_call_.get(), payload_type_map_);
- sender_transport->SetReceiver(receiver_call_->Receiver());
- receiver_transport->SetReceiver(sender_call_->Receiver());
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this, &sender_transport, &receiver_transport]() {
+ BuiltInNetworkBehaviorConfig config;
+ config.queue_delay_ms = kSendDelayMs;
+ CreateCalls();
+ sender_transport = std::make_unique<test::DirectTransport>(
+ &task_queue_,
+ std::make_unique<FakeNetworkPipe>(
+ Clock::GetRealTimeClock(),
+ std::make_unique<SimulatedNetwork>(config)),
+ sender_call_.get(), payload_type_map_);
+ config.queue_delay_ms = kReceiveDelayMs;
+ receiver_transport = std::make_unique<test::DirectTransport>(
+ &task_queue_,
+ std::make_unique<FakeNetworkPipe>(
+ Clock::GetRealTimeClock(),
+ std::make_unique<SimulatedNetwork>(config)),
+ receiver_call_.get(), payload_type_map_);
+ sender_transport->SetReceiver(receiver_call_->Receiver());
+ receiver_transport->SetReceiver(sender_call_->Receiver());
- CreateSendConfig(1, 0, 0, sender_transport.get());
- CreateMatchingReceiveConfigs(receiver_transport.get());
+ CreateSendConfig(1, 0, 0, sender_transport.get());
+ CreateMatchingReceiveConfigs(receiver_transport.get());
- CreateVideoStreams();
- CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth,
- kDefaultHeight);
- Start();
- });
+ CreateVideoStreams();
+ CreateFrameGeneratorCapturer(kDefaultFramerate, kDefaultWidth,
+ kDefaultHeight);
+ Start();
+ });
int64_t start_time_ms = clock_->TimeInMilliseconds();
while (true) {
Call::Stats stats;
- task_queue_.SendTask(
- [this, &stats]() { stats = sender_call_->GetStats(); });
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this, &stats]() { stats = sender_call_->GetStats(); });
ASSERT_GE(start_time_ms + kDefaultTimeoutMs, clock_->TimeInMilliseconds())
<< "No RTT stats before timeout!";
if (stats.rtt_ms != -1) {
@@ -763,12 +770,13 @@
SleepMs(10);
}
- task_queue_.SendTask([this, &sender_transport, &receiver_transport]() {
- Stop();
- DestroyStreams();
- sender_transport.reset();
- receiver_transport.reset();
- DestroyCalls();
- });
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this, &sender_transport, &receiver_transport]() {
+ Stop();
+ DestroyStreams();
+ sender_transport.reset();
+ receiver_transport.reset();
+ DestroyCalls();
+ });
}
} // namespace webrtc
diff --git a/video/picture_id_tests.cc b/video/picture_id_tests.cc
index e76edc9..6fca578 100644
--- a/video/picture_id_tests.cc
+++ b/video/picture_id_tests.cc
@@ -21,6 +21,7 @@
#include "modules/video_coding/codecs/vp9/include/vp9.h"
#include "rtc_base/numerics/safe_conversions.h"
#include "rtc_base/numerics/sequence_number_util.h"
+#include "rtc_base/task_queue_for_test.h"
#include "test/call_test.h"
namespace webrtc {
@@ -222,7 +223,7 @@
PictureIdTest() : num_temporal_layers_(GetParam()) {}
virtual ~PictureIdTest() {
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
send_transport_.reset();
receive_transport_.reset();
DestroyCalls();
@@ -251,23 +252,26 @@
observer_.reset(
new PictureIdObserver(PayloadStringToCodecType(payload_name)));
- task_queue_.SendTask([this, encoder_factory, payload_name]() {
- CreateCalls();
+ SendTask(
+ RTC_FROM_HERE, &task_queue_, [this, encoder_factory, payload_name]() {
+ CreateCalls();
- send_transport_.reset(new test::PacketTransport(
- &task_queue_, sender_call_.get(), observer_.get(),
- test::PacketTransport::kSender, payload_type_map_,
- std::make_unique<FakeNetworkPipe>(
- Clock::GetRealTimeClock(), std::make_unique<SimulatedNetwork>(
- BuiltInNetworkBehaviorConfig()))));
+ send_transport_.reset(new test::PacketTransport(
+ &task_queue_, sender_call_.get(), observer_.get(),
+ test::PacketTransport::kSender, payload_type_map_,
+ std::make_unique<FakeNetworkPipe>(
+ Clock::GetRealTimeClock(),
+ std::make_unique<SimulatedNetwork>(
+ BuiltInNetworkBehaviorConfig()))));
- CreateSendConfig(kNumSimulcastStreams, 0, 0, send_transport_.get());
- GetVideoSendConfig()->encoder_settings.encoder_factory = encoder_factory;
- GetVideoSendConfig()->rtp.payload_name = payload_name;
- GetVideoEncoderConfig()->codec_type =
- PayloadStringToCodecType(payload_name);
- SetVideoEncoderConfig(/* number_of_streams */ 1);
- });
+ CreateSendConfig(kNumSimulcastStreams, 0, 0, send_transport_.get());
+ GetVideoSendConfig()->encoder_settings.encoder_factory =
+ encoder_factory;
+ GetVideoSendConfig()->rtp.payload_name = payload_name;
+ GetVideoEncoderConfig()->codec_type =
+ PayloadStringToCodecType(payload_name);
+ SetVideoEncoderConfig(/* number_of_streams */ 1);
+ });
}
void PictureIdTest::SetVideoEncoderConfig(int num_streams) {
@@ -294,7 +298,7 @@
void PictureIdTest::TestPictureIdContinuousAfterReconfigure(
const std::vector<int>& ssrc_counts) {
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
CreateVideoStreams();
CreateFrameGeneratorCapturer(kFrameRate, kFrameMaxWidth, kFrameMaxHeight);
@@ -312,14 +316,14 @@
observer_->SetExpectedSsrcs(ssrc_count);
observer_->ResetObservedSsrcs();
// Make sure the picture_id sequence is continuous on reinit and recreate.
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
GetVideoSendStream()->ReconfigureVideoEncoder(
GetVideoEncoderConfig()->Copy());
});
EXPECT_TRUE(observer_->Wait()) << "Timed out waiting for packets.";
}
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
Stop();
DestroyStreams();
});
@@ -327,7 +331,7 @@
void PictureIdTest::TestPictureIdIncreaseAfterRecreateStreams(
const std::vector<int>& ssrc_counts) {
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
CreateVideoStreams();
CreateFrameGeneratorCapturer(kFrameRate, kFrameMaxWidth, kFrameMaxHeight);
@@ -342,7 +346,7 @@
// with it, therefore it is expected that some frames might be lost.
observer_->SetMaxExpectedPictureIdGap(kMaxFramesLost);
for (int ssrc_count : ssrc_counts) {
- task_queue_.SendTask([this, &ssrc_count]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this, &ssrc_count]() {
DestroyVideoSendStreams();
SetVideoEncoderConfig(ssrc_count);
@@ -357,7 +361,7 @@
EXPECT_TRUE(observer_->Wait()) << "Timed out waiting for packets.";
}
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
Stop();
DestroyStreams();
});
diff --git a/video/video_quality_test.cc b/video/video_quality_test.cc
index be1d15a..47f407d 100644
--- a/video/video_quality_test.cc
+++ b/video/video_quality_test.cc
@@ -41,6 +41,7 @@
#include "modules/video_coding/codecs/vp9/include/vp9.h"
#include "modules/video_coding/utility/ivf_file_writer.h"
#include "rtc_base/strings/string_builder.h"
+#include "rtc_base/task_queue_for_test.h"
#include "test/platform_video_capturer.h"
#include "test/run_loop.h"
#include "test/testsupport/file_utils.h"
@@ -1254,19 +1255,20 @@
recv_event_log_ = std::make_unique<RtcEventLogNull>();
}
- task_queue_.SendTask([this, ¶ms, &send_transport, &recv_transport]() {
- Call::Config send_call_config(send_event_log_.get());
- Call::Config recv_call_config(recv_event_log_.get());
- send_call_config.bitrate_config = params.call.call_bitrate_config;
- recv_call_config.bitrate_config = params.call.call_bitrate_config;
- if (params_.audio.enabled)
- InitializeAudioDevice(&send_call_config, &recv_call_config,
- params_.audio.use_real_adm);
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this, ¶ms, &send_transport, &recv_transport]() {
+ Call::Config send_call_config(send_event_log_.get());
+ Call::Config recv_call_config(recv_event_log_.get());
+ send_call_config.bitrate_config = params.call.call_bitrate_config;
+ recv_call_config.bitrate_config = params.call.call_bitrate_config;
+ if (params_.audio.enabled)
+ InitializeAudioDevice(&send_call_config, &recv_call_config,
+ params_.audio.use_real_adm);
- CreateCalls(send_call_config, recv_call_config);
- send_transport = CreateSendTransport();
- recv_transport = CreateReceiveTransport();
- });
+ CreateCalls(send_call_config, recv_call_config);
+ send_transport = CreateSendTransport();
+ recv_transport = CreateReceiveTransport();
+ });
std::string graph_title = params_.analyzer.graph_title;
if (graph_title.empty())
@@ -1286,7 +1288,7 @@
is_quick_test_enabled, clock_, params_.logging.rtp_dump_name,
&task_queue_);
- task_queue_.SendTask([&]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [&]() {
analyzer_->SetCall(sender_call_.get());
analyzer_->SetReceiver(receiver_call_->Receiver());
send_transport->SetReceiver(analyzer_.get());
@@ -1332,7 +1334,7 @@
analyzer_->Wait();
- task_queue_.SendTask([&]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [&]() {
StopThumbnails();
Stop();
@@ -1475,7 +1477,7 @@
recv_event_log_ = std::make_unique<RtcEventLogNull>();
}
- task_queue_.SendTask([&]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [&]() {
params_ = params;
CheckParamsAndInjectionComponents();
@@ -1564,7 +1566,7 @@
test::PressEnterToContinue(task_queue_);
- task_queue_.SendTask([&]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [&]() {
Stop();
DestroyStreams();
diff --git a/video/video_send_stream_tests.cc b/video/video_send_stream_tests.cc
index 9e96821..8df54e7 100644
--- a/video/video_send_stream_tests.cc
+++ b/video/video_send_stream_tests.cc
@@ -37,6 +37,7 @@
#include "rtc_base/platform_thread.h"
#include "rtc_base/rate_limiter.h"
#include "rtc_base/synchronization/sequence_checker.h"
+#include "rtc_base/task_queue_for_test.h"
#include "rtc_base/time_utils.h"
#include "rtc_base/unique_id_generator.h"
#include "system_wrappers/include/sleep.h"
@@ -114,7 +115,7 @@
};
TEST_F(VideoSendStreamTest, CanStartStartedStream) {
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
CreateSenderCall();
test::NullTransport transport;
@@ -128,7 +129,7 @@
}
TEST_F(VideoSendStreamTest, CanStopStoppedStream) {
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
CreateSenderCall();
test::NullTransport transport;
@@ -1757,31 +1758,34 @@
new_route.remote_network_id = 20;
BitrateConstraints bitrate_config;
- task_queue_->SendTask([this, &new_route, &bitrate_config]() {
- RTC_DCHECK_RUN_ON(&task_queue_thread_);
- call_->GetTransportControllerSend()->OnNetworkRouteChanged("transport",
- new_route);
- bitrate_config.start_bitrate_bps = kStartBitrateBps;
- call_->GetTransportControllerSend()->SetSdpBitrateParameters(
- bitrate_config);
- });
+ SendTask(RTC_FROM_HERE, task_queue_,
+ [this, &new_route, &bitrate_config]() {
+ RTC_DCHECK_RUN_ON(&task_queue_thread_);
+ call_->GetTransportControllerSend()->OnNetworkRouteChanged(
+ "transport", new_route);
+ bitrate_config.start_bitrate_bps = kStartBitrateBps;
+ call_->GetTransportControllerSend()->SetSdpBitrateParameters(
+ bitrate_config);
+ });
EXPECT_TRUE(Wait())
<< "Timed out while waiting for start bitrate to be exceeded.";
- task_queue_->SendTask([this, &new_route, &bitrate_config]() {
- RTC_DCHECK_RUN_ON(&task_queue_thread_);
- bitrate_config.start_bitrate_bps = -1;
- bitrate_config.max_bitrate_bps = kNewMaxBitrateBps;
- call_->GetTransportControllerSend()->SetSdpBitrateParameters(
- bitrate_config);
- // TODO(holmer): We should set the last sent packet id here and verify
- // that we correctly ignore any packet loss reported prior to that id.
- ++new_route.local_network_id;
- call_->GetTransportControllerSend()->OnNetworkRouteChanged("transport",
- new_route);
- EXPECT_GE(call_->GetStats().send_bandwidth_bps, kStartBitrateBps);
- });
+ SendTask(
+ RTC_FROM_HERE, task_queue_, [this, &new_route, &bitrate_config]() {
+ RTC_DCHECK_RUN_ON(&task_queue_thread_);
+ bitrate_config.start_bitrate_bps = -1;
+ bitrate_config.max_bitrate_bps = kNewMaxBitrateBps;
+ call_->GetTransportControllerSend()->SetSdpBitrateParameters(
+ bitrate_config);
+ // TODO(holmer): We should set the last sent packet id here and
+ // verify that we correctly ignore any packet loss reported prior to
+ // that id.
+ ++new_route.local_network_id;
+ call_->GetTransportControllerSend()->OnNetworkRouteChanged(
+ "transport", new_route);
+ EXPECT_GE(call_->GetStats().send_bandwidth_bps, kStartBitrateBps);
+ });
}
private:
@@ -1826,7 +1830,7 @@
}
void PerformTest() override {
- task_queue_->SendTask([this]() {
+ SendTask(RTC_FROM_HERE, task_queue_, [this]() {
transport_overhead_ = 100;
call_->GetTransportControllerSend()->OnTransportOverheadChanged(
transport_overhead_);
@@ -1839,7 +1843,7 @@
packets_sent_ = 0;
}
- task_queue_->SendTask([this]() {
+ SendTask(RTC_FROM_HERE, task_queue_, [this]() {
transport_overhead_ = 500;
call_->GetTransportControllerSend()->OnTransportOverheadChanged(
transport_overhead_);
@@ -2066,7 +2070,7 @@
EncoderObserver encoder;
test::VideoEncoderProxyFactory encoder_factory(&encoder);
- task_queue_.SendTask([this, &transport, &encoder_factory]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this, &transport, &encoder_factory]() {
CreateSenderCall();
CreateSendConfig(1, 0, 0, &transport);
GetVideoSendConfig()->encoder_settings.encoder_factory = &encoder_factory;
@@ -2078,14 +2082,14 @@
encoder.WaitForResolution(kDefaultWidth, kDefaultHeight);
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
frame_generator_capturer_->ChangeResolution(kDefaultWidth * 2,
kDefaultHeight * 2);
});
encoder.WaitForResolution(kDefaultWidth * 2, kDefaultHeight * 2);
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
DestroyStreams();
DestroyCalls();
});
@@ -2223,33 +2227,39 @@
encoder_factory.SetHasInternalSource(true);
test::FrameForwarder forwarder;
- task_queue_.SendTask([this, &transport, &encoder_factory, &forwarder]() {
- CreateSenderCall();
- CreateSendConfig(1, 0, 0, &transport);
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this, &transport, &encoder_factory, &forwarder]() {
+ CreateSenderCall();
+ CreateSendConfig(1, 0, 0, &transport);
- sender_call_->SignalChannelNetworkState(MediaType::VIDEO, kNetworkUp);
- GetVideoSendConfig()->encoder_settings.encoder_factory = &encoder_factory;
+ sender_call_->SignalChannelNetworkState(MediaType::VIDEO,
+ kNetworkUp);
+ GetVideoSendConfig()->encoder_settings.encoder_factory =
+ &encoder_factory;
- CreateVideoStreams();
- // Inject a frame, to force encoder creation.
- GetVideoSendStream()->Start();
- GetVideoSendStream()->SetSource(&forwarder,
- DegradationPreference::DISABLED);
- forwarder.IncomingCapturedFrame(CreateVideoFrame(640, 480, 4));
- });
+ CreateVideoStreams();
+ // Inject a frame, to force encoder creation.
+ GetVideoSendStream()->Start();
+ GetVideoSendStream()->SetSource(&forwarder,
+ DegradationPreference::DISABLED);
+ forwarder.IncomingCapturedFrame(CreateVideoFrame(640, 480, 4));
+ });
EXPECT_TRUE(encoder.WaitForEncoderInit());
- task_queue_.SendTask([this]() { GetVideoSendStream()->Start(); });
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this]() { GetVideoSendStream()->Start(); });
EXPECT_TRUE(encoder.WaitBitrateChanged(true));
- task_queue_.SendTask([this]() { GetVideoSendStream()->Stop(); });
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this]() { GetVideoSendStream()->Stop(); });
EXPECT_TRUE(encoder.WaitBitrateChanged(false));
- task_queue_.SendTask([this]() { GetVideoSendStream()->Start(); });
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this]() { GetVideoSendStream()->Start(); });
EXPECT_TRUE(encoder.WaitBitrateChanged(true));
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
DestroyStreams();
DestroyCalls();
});
@@ -2266,35 +2276,38 @@
encoder_factory.SetHasInternalSource(true);
test::FrameForwarder forwarder;
- task_queue_.SendTask([this, &transport, &encoder_factory, &forwarder]() {
- CreateSenderCall();
- // Create two simulcast streams.
- CreateSendConfig(2, 0, 0, &transport);
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this, &transport, &encoder_factory, &forwarder]() {
+ CreateSenderCall();
+ // Create two simulcast streams.
+ CreateSendConfig(2, 0, 0, &transport);
- sender_call_->SignalChannelNetworkState(MediaType::VIDEO, kNetworkUp);
- GetVideoSendConfig()->encoder_settings.encoder_factory = &encoder_factory;
+ sender_call_->SignalChannelNetworkState(MediaType::VIDEO,
+ kNetworkUp);
+ GetVideoSendConfig()->encoder_settings.encoder_factory =
+ &encoder_factory;
- CreateVideoStreams();
+ CreateVideoStreams();
- // Inject a frame, to force encoder creation.
- GetVideoSendStream()->Start();
- GetVideoSendStream()->SetSource(&forwarder,
- DegradationPreference::DISABLED);
- forwarder.IncomingCapturedFrame(CreateVideoFrame(640, 480, 4));
- });
+ // Inject a frame, to force encoder creation.
+ GetVideoSendStream()->Start();
+ GetVideoSendStream()->SetSource(&forwarder,
+ DegradationPreference::DISABLED);
+ forwarder.IncomingCapturedFrame(CreateVideoFrame(640, 480, 4));
+ });
EXPECT_TRUE(encoder.WaitForEncoderInit());
// When we turn on the simulcast layers it will update the BitrateAllocator,
// which in turn updates the VideoEncoder's bitrate.
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
GetVideoSendStream()->UpdateActiveSimulcastLayers({true, true});
});
EXPECT_TRUE(encoder.WaitBitrateChanged(true));
GetVideoEncoderConfig()->simulcast_layers[0].active = true;
GetVideoEncoderConfig()->simulcast_layers[1].active = false;
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
GetVideoSendStream()->ReconfigureVideoEncoder(
GetVideoEncoderConfig()->Copy());
});
@@ -2310,12 +2323,12 @@
// Turning off both simulcast layers should trigger a bitrate change of 0.
GetVideoEncoderConfig()->simulcast_layers[0].active = false;
GetVideoEncoderConfig()->simulcast_layers[1].active = false;
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
GetVideoSendStream()->UpdateActiveSimulcastLayers({false, false});
});
EXPECT_TRUE(encoder.WaitBitrateChanged(false));
- task_queue_.SendTask([this]() {
+ SendTask(RTC_FROM_HERE, &task_queue_, [this]() {
DestroyStreams();
DestroyCalls();
});
@@ -2429,12 +2442,13 @@
void PerformTest() override {
EXPECT_TRUE(Wait()) << "Timed out while waiting for Encode.";
- task_queue_->SendTask([this]() {
+ SendTask(RTC_FROM_HERE, task_queue_, [this]() {
EXPECT_EQ(0u, num_releases());
stream_->ReconfigureVideoEncoder(std::move(encoder_config_));
EXPECT_EQ(0u, num_releases());
stream_->Stop();
- // Encoder should not be released before destroying the VideoSendStream.
+ // Encoder should not be released before destroying the
+ // VideoSendStream.
EXPECT_FALSE(IsReleased());
EXPECT_TRUE(IsReadyForEncode());
stream_->Start();
@@ -2936,7 +2950,7 @@
BitrateConstraints bitrate_config;
bitrate_config.start_bitrate_bps = kIncreasedStartBitrateKbps * 1000;
bitrate_config.max_bitrate_bps = kIncreasedMaxBitrateKbps * 1000;
- task_queue_->SendTask([this, &bitrate_config]() {
+ SendTask(RTC_FROM_HERE, task_queue_, [this, &bitrate_config]() {
call_->GetTransportControllerSend()->SetSdpBitrateParameters(
bitrate_config);
});
@@ -3689,7 +3703,7 @@
bitrate_config.start_bitrate_bps = kStartBitrateBps;
bitrate_config.max_bitrate_bps = kMaxBitrateBps;
bitrate_config.min_bitrate_bps = kMinBitrateBps;
- task_queue_->SendTask([this, &bitrate_config]() {
+ SendTask(RTC_FROM_HERE, task_queue_, [this, &bitrate_config]() {
call_->GetTransportControllerSend()->SetSdpBitrateParameters(
bitrate_config);
call_->GetTransportControllerSend()->OnTransportOverheadChanged(40);
@@ -3933,16 +3947,18 @@
auto reset_fun = [this](const VideoSendStream::Config& send_stream_config,
const VideoEncoderConfig& encoder_config,
test::BaseTest* test) {
- task_queue_.SendTask([this, &send_stream_config, &encoder_config, &test]() {
- Stop();
- DestroyVideoSendStreams();
- SetVideoSendConfig(send_stream_config);
- SetVideoEncoderConfig(encoder_config);
- CreateVideoSendStreams();
- SetVideoDegradation(DegradationPreference::MAINTAIN_RESOLUTION);
- test->OnVideoStreamsCreated(GetVideoSendStream(), video_receive_streams_);
- Start();
- });
+ SendTask(RTC_FROM_HERE, &task_queue_,
+ [this, &send_stream_config, &encoder_config, &test]() {
+ Stop();
+ DestroyVideoSendStreams();
+ SetVideoSendConfig(send_stream_config);
+ SetVideoEncoderConfig(encoder_config);
+ CreateVideoSendStreams();
+ SetVideoDegradation(DegradationPreference::MAINTAIN_RESOLUTION);
+ test->OnVideoStreamsCreated(GetVideoSendStream(),
+ video_receive_streams_);
+ Start();
+ });
};
ContentSwitchTest<decltype(reset_fun)> test(&reset_fun);
RunBaseTest(&test);