aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMarkus Handell <handellm@webrtc.org>2020-07-08 16:09:21 +0200
committerCommit Bot <commit-bot@chromium.org>2020-07-08 14:31:00 +0000
commita5a4be1118998d87f4aa6f52ff2ec71314d4dde0 (patch)
treea9166529c602f971bd9e7d50a75278ffc7a81cc3 /test
parent059f4f74df61a1315529fa5911bfe74f532fa411 (diff)
downloadwebrtc-a5a4be1118998d87f4aa6f52ff2ec71314d4dde0.tar.gz
Partly migrate test/ to webrtc::Mutex.
This change migrates test/, except for subdirs - test/time_controller - test/pc/e2e Bug: webrtc:11567 Change-Id: Ib6f7c062f1c66caf7083fb4ec60727d66299dbeb Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178819 Commit-Queue: Markus Handell <handellm@webrtc.org> Reviewed-by: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#31675}
Diffstat (limited to 'test')
-rw-r--r--test/BUILD.gn4
-rw-r--r--test/direct_transport.cc4
-rw-r--r--test/direct_transport.h3
-rw-r--r--test/frame_generator.cc4
-rw-r--r--test/frame_generator.h10
-rw-r--r--test/frame_generator_capturer.cc23
-rw-r--r--test/frame_generator_capturer.h4
-rw-r--r--test/network/BUILD.gn1
-rw-r--r--test/network/fake_network_socket_server.cc4
-rw-r--r--test/network/fake_network_socket_server.h4
-rw-r--r--test/scenario/BUILD.gn1
-rw-r--r--test/scenario/network_node.cc8
-rw-r--r--test/scenario/network_node.h15
-rw-r--r--test/scenario/video_stream.cc6
-rw-r--r--test/scenario/video_stream.h7
-rw-r--r--test/test_video_capturer.cc2
-rw-r--r--test/test_video_capturer.h6
-rw-r--r--test/testsupport/ivf_video_frame_generator.cc12
-rw-r--r--test/testsupport/ivf_video_frame_generator.h6
-rw-r--r--test/testsupport/ivf_video_frame_generator_unittest.cc7
-rw-r--r--test/testsupport/perf_test.cc22
-rw-r--r--test/testsupport/perf_test_histogram_writer.cc14
22 files changed, 88 insertions, 79 deletions
diff --git a/test/BUILD.gn b/test/BUILD.gn
index 15e86e468c..c93ae82d38 100644
--- a/test/BUILD.gn
+++ b/test/BUILD.gn
@@ -67,6 +67,7 @@ rtc_library("frame_generator_impl") {
"../rtc_base:criticalsection",
"../rtc_base:rtc_base_approved",
"../rtc_base:rtc_event",
+ "../rtc_base/synchronization:mutex",
"../rtc_base/synchronization:sequence_checker",
"../rtc_base/system:file_wrapper",
"../system_wrappers",
@@ -248,6 +249,7 @@ rtc_library("perf_test") {
"../rtc_base:criticalsection",
"../rtc_base:logging",
"../rtc_base:rtc_numerics",
+ "../rtc_base/synchronization:mutex",
]
absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
if (rtc_enable_protobuf) {
@@ -523,6 +525,7 @@ if (rtc_include_tests) {
"../rtc_base:criticalsection",
"../rtc_base:rtc_event",
"../rtc_base:rtc_task_queue",
+ "../rtc_base/synchronization:mutex",
"../rtc_base/system:file_wrapper",
"../rtc_base/task_utils:to_queued_task",
"pc/e2e:e2e_unittests",
@@ -721,6 +724,7 @@ rtc_library("direct_transport") {
"../call:simulated_packet_receiver",
"../rtc_base:macromagic",
"../rtc_base:timeutils",
+ "../rtc_base/synchronization:mutex",
"../rtc_base/synchronization:sequence_checker",
"../rtc_base/task_utils:repeating_task",
]
diff --git a/test/direct_transport.cc b/test/direct_transport.cc
index f4ae047870..9c7a8f88d0 100644
--- a/test/direct_transport.cc
+++ b/test/direct_transport.cc
@@ -83,7 +83,7 @@ void DirectTransport::SendPacket(const uint8_t* data, size_t length) {
int64_t send_time_us = rtc::TimeMicros();
fake_network_->DeliverPacket(media_type, rtc::CopyOnWriteBuffer(data, length),
send_time_us);
- rtc::CritScope cs(&process_lock_);
+ MutexLock lock(&process_lock_);
if (!next_process_task_.Running())
ProcessPackets();
}
@@ -112,7 +112,7 @@ void DirectTransport::ProcessPackets() {
if (auto delay_ms = fake_network_->TimeUntilNextProcess())
return TimeDelta::Millis(*delay_ms);
// Otherwise stop the task.
- rtc::CritScope cs(&process_lock_);
+ MutexLock lock(&process_lock_);
next_process_task_.Stop();
// Since this task is stopped, return value doesn't matter.
return TimeDelta::Zero();
diff --git a/test/direct_transport.h b/test/direct_transport.h
index e0b2251eea..2fc3b7f76b 100644
--- a/test/direct_transport.h
+++ b/test/direct_transport.h
@@ -17,6 +17,7 @@
#include "api/test/simulated_network.h"
#include "call/call.h"
#include "call/simulated_packet_receiver.h"
+#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/synchronization/sequence_checker.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "rtc_base/thread_annotations.h"
@@ -66,7 +67,7 @@ class DirectTransport : public Transport {
TaskQueueBase* const task_queue_;
- rtc::CriticalSection process_lock_;
+ Mutex process_lock_;
RepeatingTaskHandle next_process_task_ RTC_GUARDED_BY(&process_lock_);
const Demuxer demuxer_;
diff --git a/test/frame_generator.cc b/test/frame_generator.cc
index 1f998427ac..caaa5e6321 100644
--- a/test/frame_generator.cc
+++ b/test/frame_generator.cc
@@ -46,7 +46,7 @@ SquareGenerator::SquareGenerator(int width,
}
void SquareGenerator::ChangeResolution(size_t width, size_t height) {
- rtc::CritScope lock(&crit_);
+ MutexLock lock(&mutex_);
width_ = static_cast<int>(width);
height_ = static_cast<int>(height);
RTC_CHECK(width_ > 0);
@@ -65,7 +65,7 @@ rtc::scoped_refptr<I420Buffer> SquareGenerator::CreateI420Buffer(int width,
}
FrameGeneratorInterface::VideoFrameData SquareGenerator::NextFrame() {
- rtc::CritScope lock(&crit_);
+ MutexLock lock(&mutex_);
rtc::scoped_refptr<VideoFrameBuffer> buffer = nullptr;
switch (type_) {
diff --git a/test/frame_generator.h b/test/frame_generator.h
index 6f59c1ed0b..94e15cb0de 100644
--- a/test/frame_generator.h
+++ b/test/frame_generator.h
@@ -20,8 +20,8 @@
#include "api/video/video_frame.h"
#include "api/video/video_frame_buffer.h"
#include "api/video/video_source_interface.h"
-#include "rtc_base/critical_section.h"
#include "rtc_base/random.h"
+#include "rtc_base/synchronization/mutex.h"
#include "system_wrappers/include/clock.h"
namespace webrtc {
@@ -57,11 +57,11 @@ class SquareGenerator : public FrameGeneratorInterface {
const uint8_t yuv_a_;
};
- rtc::CriticalSection crit_;
+ Mutex mutex_;
const OutputType type_;
- int width_ RTC_GUARDED_BY(&crit_);
- int height_ RTC_GUARDED_BY(&crit_);
- std::vector<std::unique_ptr<Square>> squares_ RTC_GUARDED_BY(&crit_);
+ int width_ RTC_GUARDED_BY(&mutex_);
+ int height_ RTC_GUARDED_BY(&mutex_);
+ std::vector<std::unique_ptr<Square>> squares_ RTC_GUARDED_BY(&mutex_);
};
class YuvFileGenerator : public FrameGeneratorInterface {
diff --git a/test/frame_generator_capturer.cc b/test/frame_generator_capturer.cc
index 9806c83d83..266cff8734 100644
--- a/test/frame_generator_capturer.cc
+++ b/test/frame_generator_capturer.cc
@@ -20,7 +20,6 @@
#include "absl/strings/match.h"
#include "api/test/create_frame_generator.h"
#include "rtc_base/checks.h"
-#include "rtc_base/critical_section.h"
#include "rtc_base/logging.h"
#include "rtc_base/task_queue.h"
#include "rtc_base/time_utils.h"
@@ -150,13 +149,13 @@ std::unique_ptr<FrameGeneratorCapturer> FrameGeneratorCapturer::Create(
}
void FrameGeneratorCapturer::SetFakeRotation(VideoRotation rotation) {
- rtc::CritScope cs(&lock_);
+ MutexLock lock(&lock_);
fake_rotation_ = rotation;
}
void FrameGeneratorCapturer::SetFakeColorSpace(
absl::optional<ColorSpace> color_space) {
- rtc::CritScope cs(&lock_);
+ MutexLock lock(&lock_);
fake_color_space_ = color_space;
}
@@ -176,7 +175,7 @@ bool FrameGeneratorCapturer::Init() {
}
void FrameGeneratorCapturer::InsertFrame() {
- rtc::CritScope cs(&lock_);
+ MutexLock lock(&lock_);
if (sending_) {
FrameGeneratorInterface::VideoFrameData frame_data =
frame_generator_->NextFrame();
@@ -205,7 +204,7 @@ void FrameGeneratorCapturer::InsertFrame() {
void FrameGeneratorCapturer::Start() {
{
- rtc::CritScope cs(&lock_);
+ MutexLock lock(&lock_);
sending_ = true;
}
if (!frame_task_.Running()) {
@@ -217,17 +216,17 @@ void FrameGeneratorCapturer::Start() {
}
void FrameGeneratorCapturer::Stop() {
- rtc::CritScope cs(&lock_);
+ MutexLock lock(&lock_);
sending_ = false;
}
void FrameGeneratorCapturer::ChangeResolution(size_t width, size_t height) {
- rtc::CritScope cs(&lock_);
+ MutexLock lock(&lock_);
frame_generator_->ChangeResolution(width, height);
}
void FrameGeneratorCapturer::ChangeFramerate(int target_framerate) {
- rtc::CritScope cs(&lock_);
+ MutexLock lock(&lock_);
RTC_CHECK(target_capture_fps_ > 0);
if (target_framerate > source_fps_)
RTC_LOG(LS_WARNING) << "Target framerate clamped from " << target_framerate
@@ -245,7 +244,7 @@ void FrameGeneratorCapturer::ChangeFramerate(int target_framerate) {
}
void FrameGeneratorCapturer::SetSinkWantsObserver(SinkWantsObserver* observer) {
- rtc::CritScope cs(&lock_);
+ MutexLock lock(&lock_);
RTC_DCHECK(!sink_wants_observer_);
sink_wants_observer_ = observer;
}
@@ -254,7 +253,7 @@ void FrameGeneratorCapturer::AddOrUpdateSink(
rtc::VideoSinkInterface<VideoFrame>* sink,
const rtc::VideoSinkWants& wants) {
TestVideoCapturer::AddOrUpdateSink(sink, wants);
- rtc::CritScope cs(&lock_);
+ MutexLock lock(&lock_);
if (sink_wants_observer_) {
// Tests need to observe unmodified sink wants.
sink_wants_observer_->OnSinkWantsChanged(sink, wants);
@@ -266,7 +265,7 @@ void FrameGeneratorCapturer::RemoveSink(
rtc::VideoSinkInterface<VideoFrame>* sink) {
TestVideoCapturer::RemoveSink(sink);
- rtc::CritScope cs(&lock_);
+ MutexLock lock(&lock_);
UpdateFps(GetSinkWants().max_framerate_fps);
}
@@ -284,7 +283,7 @@ void FrameGeneratorCapturer::ForceFrame() {
}
int FrameGeneratorCapturer::GetCurrentConfiguredFramerate() {
- rtc::CritScope cs(&lock_);
+ MutexLock lock(&lock_);
if (wanted_fps_ && *wanted_fps_ < target_capture_fps_)
return *wanted_fps_;
return target_capture_fps_;
diff --git a/test/frame_generator_capturer.h b/test/frame_generator_capturer.h
index fd376e2d6f..1e915fca21 100644
--- a/test/frame_generator_capturer.h
+++ b/test/frame_generator_capturer.h
@@ -16,7 +16,7 @@
#include "api/task_queue/task_queue_factory.h"
#include "api/test/frame_generator_interface.h"
#include "api/video/video_frame.h"
-#include "rtc_base/critical_section.h"
+#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/task_queue.h"
#include "rtc_base/task_utils/repeating_task.h"
#include "system_wrappers/include/clock.h"
@@ -157,7 +157,7 @@ class FrameGeneratorCapturer : public TestVideoCapturer {
bool sending_;
SinkWantsObserver* sink_wants_observer_ RTC_GUARDED_BY(&lock_);
- rtc::CriticalSection lock_;
+ Mutex lock_;
std::unique_ptr<FrameGeneratorInterface> frame_generator_;
int source_fps_ RTC_GUARDED_BY(&lock_);
diff --git a/test/network/BUILD.gn b/test/network/BUILD.gn
index 9e810bfc53..949b201c72 100644
--- a/test/network/BUILD.gn
+++ b/test/network/BUILD.gn
@@ -48,6 +48,7 @@ rtc_library("emulated_network") {
"../../rtc_base:rtc_task_queue",
"../../rtc_base:safe_minmax",
"../../rtc_base:task_queue_for_test",
+ "../../rtc_base/synchronization:mutex",
"../../rtc_base/synchronization:sequence_checker",
"../../rtc_base/task_utils:repeating_task",
"../../rtc_base/third_party/sigslot",
diff --git a/test/network/fake_network_socket_server.cc b/test/network/fake_network_socket_server.cc
index 60dfbe33d5..bee2846be7 100644
--- a/test/network/fake_network_socket_server.cc
+++ b/test/network/fake_network_socket_server.cc
@@ -280,7 +280,7 @@ EmulatedEndpointImpl* FakeNetworkSocketServer::GetEndpointNode(
}
void FakeNetworkSocketServer::Unregister(FakeNetworkSocket* socket) {
- rtc::CritScope crit(&lock_);
+ MutexLock lock(&lock_);
sockets_.erase(absl::c_find(sockets_, socket));
}
@@ -297,7 +297,7 @@ rtc::AsyncSocket* FakeNetworkSocketServer::CreateAsyncSocket(int family,
RTC_DCHECK(thread_) << "must be attached to thread before creating sockets";
FakeNetworkSocket* out = new FakeNetworkSocket(this, thread_);
{
- rtc::CritScope crit(&lock_);
+ MutexLock lock(&lock_);
sockets_.push_back(out);
}
return out;
diff --git a/test/network/fake_network_socket_server.h b/test/network/fake_network_socket_server.h
index 3a007588e3..2cf4d7c86d 100644
--- a/test/network/fake_network_socket_server.h
+++ b/test/network/fake_network_socket_server.h
@@ -16,9 +16,9 @@
#include "api/units/timestamp.h"
#include "rtc_base/async_socket.h"
-#include "rtc_base/critical_section.h"
#include "rtc_base/event.h"
#include "rtc_base/socket_server.h"
+#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/third_party/sigslot/sigslot.h"
#include "system_wrappers/include/clock.h"
#include "test/network/network_emulation.h"
@@ -58,7 +58,7 @@ class FakeNetworkSocketServer : public rtc::SocketServer,
rtc::Event wakeup_;
rtc::Thread* thread_ = nullptr;
- rtc::CriticalSection lock_;
+ Mutex lock_;
std::vector<FakeNetworkSocket*> sockets_ RTC_GUARDED_BY(lock_);
};
diff --git a/test/scenario/BUILD.gn b/test/scenario/BUILD.gn
index 33c68a8211..3ae13367cd 100644
--- a/test/scenario/BUILD.gn
+++ b/test/scenario/BUILD.gn
@@ -133,6 +133,7 @@ if (rtc_include_tests) {
"../../rtc_base:rtc_task_queue",
"../../rtc_base:safe_minmax",
"../../rtc_base:task_queue_for_test",
+ "../../rtc_base/synchronization:mutex",
"../../rtc_base/synchronization:sequence_checker",
"../../rtc_base/task_utils:repeating_task",
"../../system_wrappers",
diff --git a/test/scenario/network_node.cc b/test/scenario/network_node.cc
index aa576dcf53..702789fe73 100644
--- a/test/scenario/network_node.cc
+++ b/test/scenario/network_node.cc
@@ -86,7 +86,7 @@ bool NetworkNodeTransport::SendRtp(const uint8_t* packet,
sent_packet.info.packet_type = rtc::PacketType::kData;
sender_call_->OnSentPacket(sent_packet);
- rtc::CritScope crit(&crit_sect_);
+ MutexLock lock(&mutex_);
if (!endpoint_)
return false;
rtc::CopyOnWriteBuffer buffer(packet, length);
@@ -97,7 +97,7 @@ bool NetworkNodeTransport::SendRtp(const uint8_t* packet,
bool NetworkNodeTransport::SendRtcp(const uint8_t* packet, size_t length) {
rtc::CopyOnWriteBuffer buffer(packet, length);
- rtc::CritScope crit(&crit_sect_);
+ MutexLock lock(&mutex_);
if (!endpoint_)
return false;
endpoint_->SendPacket(local_address_, remote_address_, buffer,
@@ -121,7 +121,7 @@ void NetworkNodeTransport::Connect(EmulatedEndpoint* endpoint,
{
// Only IPv4 address is supported.
RTC_CHECK_EQ(receiver_address.family(), AF_INET);
- rtc::CritScope crit(&crit_sect_);
+ MutexLock lock(&mutex_);
endpoint_ = endpoint;
local_address_ = rtc::SocketAddress(endpoint_->GetPeerLocalAddress(), 0);
remote_address_ = receiver_address;
@@ -134,7 +134,7 @@ void NetworkNodeTransport::Connect(EmulatedEndpoint* endpoint,
}
void NetworkNodeTransport::Disconnect() {
- rtc::CritScope crit(&crit_sect_);
+ MutexLock lock(&mutex_);
current_network_route_.connected = false;
sender_call_->GetTransportControllerSend()->OnNetworkRouteChanged(
kDummyTransportName, current_network_route_);
diff --git a/test/scenario/network_node.h b/test/scenario/network_node.h
index b3d093b84e..ea8eb35daf 100644
--- a/test/scenario/network_node.h
+++ b/test/scenario/network_node.h
@@ -22,6 +22,7 @@
#include "call/simulated_network.h"
#include "rtc_base/constructor_magic.h"
#include "rtc_base/copy_on_write_buffer.h"
+#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/task_queue.h"
#include "test/network/network_emulation.h"
#include "test/scenario/column_printer.h"
@@ -65,19 +66,19 @@ class NetworkNodeTransport : public Transport {
void Disconnect();
DataSize packet_overhead() {
- rtc::CritScope crit(&crit_sect_);
+ MutexLock lock(&mutex_);
return packet_overhead_;
}
private:
- rtc::CriticalSection crit_sect_;
+ Mutex mutex_;
Clock* const sender_clock_;
Call* const sender_call_;
- EmulatedEndpoint* endpoint_ RTC_GUARDED_BY(crit_sect_) = nullptr;
- rtc::SocketAddress local_address_ RTC_GUARDED_BY(crit_sect_);
- rtc::SocketAddress remote_address_ RTC_GUARDED_BY(crit_sect_);
- DataSize packet_overhead_ RTC_GUARDED_BY(crit_sect_) = DataSize::Zero();
- rtc::NetworkRoute current_network_route_ RTC_GUARDED_BY(crit_sect_);
+ EmulatedEndpoint* endpoint_ RTC_GUARDED_BY(mutex_) = nullptr;
+ rtc::SocketAddress local_address_ RTC_GUARDED_BY(mutex_);
+ rtc::SocketAddress remote_address_ RTC_GUARDED_BY(mutex_);
+ DataSize packet_overhead_ RTC_GUARDED_BY(mutex_) = DataSize::Zero();
+ rtc::NetworkRoute current_network_route_ RTC_GUARDED_BY(mutex_);
};
} // namespace test
} // namespace webrtc
diff --git a/test/scenario/video_stream.cc b/test/scenario/video_stream.cc
index 4bea740074..cad466ecfd 100644
--- a/test/scenario/video_stream.cc
+++ b/test/scenario/video_stream.cc
@@ -373,7 +373,7 @@ SendVideoStream::SendVideoStream(CallClient* sender,
case Encoder::Implementation::kFake:
encoder_factory_ =
std::make_unique<FunctionVideoEncoderFactory>([this]() {
- rtc::CritScope cs(&crit_);
+ MutexLock lock(&mutex_);
std::unique_ptr<FakeEncoder> encoder;
if (config_.encoder.codec == Codec::kVideoCodecVP8) {
encoder = std::make_unique<test::FakeVp8Encoder>(sender_->clock_);
@@ -452,7 +452,7 @@ void SendVideoStream::Stop() {
void SendVideoStream::UpdateConfig(
std::function<void(VideoStreamConfig*)> modifier) {
sender_->SendTask([&] {
- rtc::CritScope cs(&crit_);
+ MutexLock lock(&mutex_);
VideoStreamConfig prior_config = config_;
modifier(&config_);
if (prior_config.encoder.fake.max_rate != config_.encoder.fake.max_rate) {
@@ -473,7 +473,7 @@ void SendVideoStream::UpdateConfig(
void SendVideoStream::UpdateActiveLayers(std::vector<bool> active_layers) {
sender_->task_queue_.PostTask([=] {
- rtc::CritScope cs(&crit_);
+ MutexLock lock(&mutex_);
if (config_.encoder.codec ==
VideoStreamConfig::Encoder::Codec::kVideoCodecVP8) {
send_stream_->UpdateActiveSimulcastLayers(active_layers);
diff --git a/test/scenario/video_stream.h b/test/scenario/video_stream.h
index f0b99db57a..96b6d49f63 100644
--- a/test/scenario/video_stream.h
+++ b/test/scenario/video_stream.h
@@ -14,6 +14,7 @@
#include <vector>
#include "rtc_base/constructor_magic.h"
+#include "rtc_base/synchronization/mutex.h"
#include "test/fake_encoder.h"
#include "test/fake_videorenderer.h"
#include "test/frame_generator_capturer.h"
@@ -53,14 +54,14 @@ class SendVideoStream {
Transport* send_transport,
VideoFrameMatcher* matcher);
- rtc::CriticalSection crit_;
+ Mutex mutex_;
std::vector<uint32_t> ssrcs_;
std::vector<uint32_t> rtx_ssrcs_;
VideoSendStream* send_stream_ = nullptr;
CallClient* const sender_;
- VideoStreamConfig config_ RTC_GUARDED_BY(crit_);
+ VideoStreamConfig config_ RTC_GUARDED_BY(mutex_);
std::unique_ptr<VideoEncoderFactory> encoder_factory_;
- std::vector<test::FakeEncoder*> fake_encoders_ RTC_GUARDED_BY(crit_);
+ std::vector<test::FakeEncoder*> fake_encoders_ RTC_GUARDED_BY(mutex_);
std::unique_ptr<VideoBitrateAllocatorFactory> bitrate_allocator_factory_;
std::unique_ptr<FrameGeneratorCapturer> video_capturer_;
std::unique_ptr<ForwardingCapturedFrameTap> frame_tap_;
diff --git a/test/test_video_capturer.cc b/test/test_video_capturer.cc
index c0d575dc5e..9ce4aa0637 100644
--- a/test/test_video_capturer.cc
+++ b/test/test_video_capturer.cc
@@ -84,7 +84,7 @@ void TestVideoCapturer::UpdateVideoAdapter() {
}
VideoFrame TestVideoCapturer::MaybePreprocess(const VideoFrame& frame) {
- rtc::CritScope crit(&lock_);
+ MutexLock lock(&lock_);
if (preprocessor_ != nullptr) {
return preprocessor_->Preprocess(frame);
} else {
diff --git a/test/test_video_capturer.h b/test/test_video_capturer.h
index 114767a43e..dff529cb15 100644
--- a/test/test_video_capturer.h
+++ b/test/test_video_capturer.h
@@ -18,7 +18,7 @@
#include "api/video/video_source_interface.h"
#include "media/base/video_adapter.h"
#include "media/base/video_broadcaster.h"
-#include "rtc_base/critical_section.h"
+#include "rtc_base/synchronization/mutex.h"
namespace webrtc {
namespace test {
@@ -38,7 +38,7 @@ class TestVideoCapturer : public rtc::VideoSourceInterface<VideoFrame> {
const rtc::VideoSinkWants& wants) override;
void RemoveSink(rtc::VideoSinkInterface<VideoFrame>* sink) override;
void SetFramePreprocessor(std::unique_ptr<FramePreprocessor> preprocessor) {
- rtc::CritScope crit(&lock_);
+ MutexLock lock(&lock_);
preprocessor_ = std::move(preprocessor);
}
@@ -50,7 +50,7 @@ class TestVideoCapturer : public rtc::VideoSourceInterface<VideoFrame> {
void UpdateVideoAdapter();
VideoFrame MaybePreprocess(const VideoFrame& frame);
- rtc::CriticalSection lock_;
+ Mutex lock_;
std::unique_ptr<FramePreprocessor> preprocessor_ RTC_GUARDED_BY(lock_);
rtc::VideoBroadcaster broadcaster_;
cricket::VideoAdapter video_adapter_;
diff --git a/test/testsupport/ivf_video_frame_generator.cc b/test/testsupport/ivf_video_frame_generator.cc
index 81155f80ff..fe836763fa 100644
--- a/test/testsupport/ivf_video_frame_generator.cc
+++ b/test/testsupport/ivf_video_frame_generator.cc
@@ -53,7 +53,7 @@ IvfVideoFrameGenerator::IvfVideoFrameGenerator(const std::string& file_name)
WEBRTC_VIDEO_CODEC_OK);
}
IvfVideoFrameGenerator::~IvfVideoFrameGenerator() {
- rtc::CritScope crit(&lock_);
+ MutexLock lock(&lock_);
if (!file_reader_) {
return;
}
@@ -62,7 +62,7 @@ IvfVideoFrameGenerator::~IvfVideoFrameGenerator() {
// Reset decoder to prevent it from async access to |this|.
video_decoder_.reset();
{
- rtc::CritScope frame_crit(&frame_decode_lock_);
+ MutexLock frame_lock(&frame_decode_lock_);
next_frame_ = absl::nullopt;
// Set event in case another thread is waiting on it.
next_frame_decoded_.Set();
@@ -70,7 +70,7 @@ IvfVideoFrameGenerator::~IvfVideoFrameGenerator() {
}
FrameGeneratorInterface::VideoFrameData IvfVideoFrameGenerator::NextFrame() {
- rtc::CritScope crit(&lock_);
+ MutexLock lock(&lock_);
next_frame_decoded_.Reset();
RTC_CHECK(file_reader_);
if (!file_reader_->HasMoreFrames()) {
@@ -86,7 +86,7 @@ FrameGeneratorInterface::VideoFrameData IvfVideoFrameGenerator::NextFrame() {
RTC_CHECK(decoded) << "Failed to decode next frame in "
<< kMaxNextFrameWaitTemeoutMs << "ms. Can't continue";
- rtc::CritScope frame_crit(&frame_decode_lock_);
+ MutexLock frame_lock(&frame_decode_lock_);
rtc::scoped_refptr<VideoFrameBuffer> buffer =
next_frame_->video_frame_buffer();
if (width_ != static_cast<size_t>(buffer->width()) ||
@@ -102,7 +102,7 @@ FrameGeneratorInterface::VideoFrameData IvfVideoFrameGenerator::NextFrame() {
}
void IvfVideoFrameGenerator::ChangeResolution(size_t width, size_t height) {
- rtc::CritScope crit(&lock_);
+ MutexLock lock(&lock_);
width_ = width;
height_ = height;
}
@@ -126,7 +126,7 @@ void IvfVideoFrameGenerator::DecodedCallback::Decoded(
}
void IvfVideoFrameGenerator::OnFrameDecoded(const VideoFrame& decoded_frame) {
- rtc::CritScope crit(&frame_decode_lock_);
+ MutexLock lock(&frame_decode_lock_);
next_frame_ = decoded_frame;
next_frame_decoded_.Set();
}
diff --git a/test/testsupport/ivf_video_frame_generator.h b/test/testsupport/ivf_video_frame_generator.h
index 913d882766..32ba21ed26 100644
--- a/test/testsupport/ivf_video_frame_generator.h
+++ b/test/testsupport/ivf_video_frame_generator.h
@@ -20,8 +20,8 @@
#include "api/video/video_frame.h"
#include "api/video_codecs/video_decoder.h"
#include "modules/video_coding/utility/ivf_file_reader.h"
-#include "rtc_base/critical_section.h"
#include "rtc_base/event.h"
+#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/synchronization/sequence_checker.h"
namespace webrtc {
@@ -71,11 +71,11 @@ class IvfVideoFrameGenerator : public FrameGeneratorInterface {
// FrameGenerator is injected into PeerConnection via some scoped_ref object
// and it can happen that the last pointer will be destroyed on the different
// thread comparing to the one from which frames were read.
- rtc::CriticalSection lock_;
+ Mutex lock_;
// This lock is used to sync between sending and receiving frame from decoder.
// We can't reuse |lock_| because then generator can be destroyed between
// frame was sent to decoder and decoder callback was invoked.
- rtc::CriticalSection frame_decode_lock_;
+ Mutex frame_decode_lock_;
rtc::Event next_frame_decoded_;
absl::optional<VideoFrame> next_frame_ RTC_GUARDED_BY(frame_decode_lock_);
diff --git a/test/testsupport/ivf_video_frame_generator_unittest.cc b/test/testsupport/ivf_video_frame_generator_unittest.cc
index 0c364dbb1d..0295fab331 100644
--- a/test/testsupport/ivf_video_frame_generator_unittest.cc
+++ b/test/testsupport/ivf_video_frame_generator_unittest.cc
@@ -25,7 +25,6 @@
#include "modules/video_coding/codecs/vp9/include/vp9.h"
#include "modules/video_coding/include/video_error_codes.h"
#include "modules/video_coding/utility/ivf_file_writer.h"
-#include "rtc_base/critical_section.h"
#include "rtc_base/event.h"
#include "test/gtest.h"
#include "test/testsupport/file_utils.h"
@@ -34,6 +33,8 @@
#if defined(WEBRTC_USE_H264)
#include "modules/video_coding/codecs/h264/include/h264.h"
+#include "rtc_base/synchronization/mutex.h"
+
#endif
namespace webrtc {
@@ -71,7 +72,7 @@ class IvfFileWriterEncodedCallback : public EncodedImageCallback {
const RTPFragmentationHeader* fragmentation) override {
EXPECT_TRUE(file_writer_->WriteFrame(encoded_image, video_codec_type_));
- rtc::CritScope crit(&lock_);
+ MutexLock lock(&lock_);
received_frames_count_++;
RTC_CHECK_LE(received_frames_count_, expected_frames_count_);
if (received_frames_count_ == expected_frames_count_) {
@@ -89,7 +90,7 @@ class IvfFileWriterEncodedCallback : public EncodedImageCallback {
const VideoCodecType video_codec_type_;
const int expected_frames_count_;
- rtc::CriticalSection lock_;
+ Mutex lock_;
int received_frames_count_ RTC_GUARDED_BY(lock_) = 0;
rtc::Event expected_frames_count_received_;
};
diff --git a/test/testsupport/perf_test.cc b/test/testsupport/perf_test.cc
index 310c7e36a5..3a436749fb 100644
--- a/test/testsupport/perf_test.cc
+++ b/test/testsupport/perf_test.cc
@@ -18,7 +18,7 @@
#include <vector>
#include "rtc_base/checks.h"
-#include "rtc_base/critical_section.h"
+#include "rtc_base/synchronization/mutex.h"
#include "test/testsupport/perf_test_histogram_writer.h"
namespace webrtc {
@@ -60,7 +60,7 @@ class PlottableCounterPrinter {
PlottableCounterPrinter() : output_(stdout) {}
void SetOutput(FILE* output) {
- rtc::CritScope lock(&crit_);
+ MutexLock lock(&mutex_);
output_ = output;
}
@@ -68,14 +68,14 @@ class PlottableCounterPrinter {
const std::string& trace_name,
const webrtc::SamplesStatsCounter& counter,
const std::string& units) {
- rtc::CritScope lock(&crit_);
+ MutexLock lock(&mutex_);
plottable_counters_.push_back({graph_name, trace_name, counter, units});
}
void Print(const std::vector<std::string>& desired_graphs_raw) const {
std::set<std::string> desired_graphs(desired_graphs_raw.begin(),
desired_graphs_raw.end());
- rtc::CritScope lock(&crit_);
+ MutexLock lock(&mutex_);
for (auto& counter : plottable_counters_) {
if (!desired_graphs.empty()) {
auto it = desired_graphs.find(counter.graph_name);
@@ -108,9 +108,9 @@ class PlottableCounterPrinter {
}
private:
- rtc::CriticalSection crit_;
- std::vector<PlottableCounter> plottable_counters_ RTC_GUARDED_BY(&crit_);
- FILE* output_ RTC_GUARDED_BY(&crit_);
+ mutable Mutex mutex_;
+ std::vector<PlottableCounter> plottable_counters_ RTC_GUARDED_BY(&mutex_);
+ FILE* output_ RTC_GUARDED_BY(&mutex_);
};
PlottableCounterPrinter& GetPlottableCounterPrinter() {
@@ -123,7 +123,7 @@ class ResultsLinePrinter {
ResultsLinePrinter() : output_(stdout) {}
void SetOutput(FILE* output) {
- rtc::CritScope lock(&crit_);
+ MutexLock lock(&mutex_);
output_ = output;
}
@@ -177,7 +177,7 @@ class ResultsLinePrinter {
const std::string& suffix,
const std::string& units,
bool important) {
- rtc::CritScope lock(&crit_);
+ MutexLock lock(&mutex_);
// <*>RESULT <graph_name>: <trace_name>= <value> <units>
// <*>RESULT <graph_name>: <trace_name>= {<mean>, <std deviation>} <units>
// <*>RESULT <graph_name>: <trace_name>= [<value>,value,value,...,] <units>
@@ -186,8 +186,8 @@ class ResultsLinePrinter {
values.c_str(), suffix.c_str(), units.c_str());
}
- rtc::CriticalSection crit_;
- FILE* output_ RTC_GUARDED_BY(&crit_);
+ Mutex mutex_;
+ FILE* output_ RTC_GUARDED_BY(&mutex_);
};
ResultsLinePrinter& GetResultsLinePrinter() {
diff --git a/test/testsupport/perf_test_histogram_writer.cc b/test/testsupport/perf_test_histogram_writer.cc
index ad70d6801c..a4f86dc5f0 100644
--- a/test/testsupport/perf_test_histogram_writer.cc
+++ b/test/testsupport/perf_test_histogram_writer.cc
@@ -15,8 +15,8 @@
#include <map>
#include <memory>
-#include "rtc_base/critical_section.h"
#include "rtc_base/logging.h"
+#include "rtc_base/synchronization/mutex.h"
#include "third_party/catapult/tracing/tracing/value/diagnostics/reserved_infos.h"
#include "third_party/catapult/tracing/tracing/value/histogram.h"
@@ -33,9 +33,9 @@ std::string AsJsonString(const std::string string) {
class PerfTestHistogramWriter : public PerfTestResultWriter {
public:
- PerfTestHistogramWriter() : crit_() {}
+ PerfTestHistogramWriter() : mutex_() {}
void ClearResults() override {
- rtc::CritScope lock(&crit_);
+ MutexLock lock(&mutex_);
histograms_.clear();
}
@@ -75,7 +75,7 @@ class PerfTestHistogramWriter : public PerfTestResultWriter {
std::string Serialize() const override {
proto::HistogramSet histogram_set;
- rtc::CritScope lock(&crit_);
+ MutexLock lock(&mutex_);
for (const auto& histogram : histograms_) {
std::unique_ptr<proto::Histogram> proto = histogram.second->toProto();
histogram_set.mutable_histograms()->AddAllocated(proto.release());
@@ -108,7 +108,7 @@ class PerfTestHistogramWriter : public PerfTestResultWriter {
// parlance). There should be several histograms with the same measurement
// if they're for different stories.
std::string measurement_and_story = graph_name + trace_name;
- rtc::CritScope lock(&crit_);
+ MutexLock lock(&mutex_);
if (histograms_.count(measurement_and_story) == 0) {
proto::UnitAndDirection unit = ParseUnit(units, improve_direction);
std::unique_ptr<catapult::HistogramBuilder> builder =
@@ -182,9 +182,9 @@ class PerfTestHistogramWriter : public PerfTestResultWriter {
}
private:
- rtc::CriticalSection crit_;
+ mutable Mutex mutex_;
std::map<std::string, std::unique_ptr<catapult::HistogramBuilder>> histograms_
- RTC_GUARDED_BY(&crit_);
+ RTC_GUARDED_BY(&mutex_);
};
} // namespace