Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(932)

Unified Diff: media/cast/test/cast_benchmarks.cc

Issue 901833004: [Cast] Repurpose CastInitializationStatus for variable frame size support. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Compile fixes. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/cast/test/cast_benchmarks.cc
diff --git a/media/cast/test/cast_benchmarks.cc b/media/cast/test/cast_benchmarks.cc
index 8ef123e5008912d9ed33383c7364315374f221cb..aa89e943234a26e0840b18e1dff64916ee218ad2 100644
--- a/media/cast/test/cast_benchmarks.cc
+++ b/media/cast/test/cast_benchmarks.cc
@@ -32,6 +32,8 @@
#include "base/bind_helpers.h"
#include "base/command_line.h"
#include "base/debug/profiler.h"
+#include "base/memory/weak_ptr.h"
+#include "base/run_loop.h"
#include "base/stl_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
@@ -81,12 +83,10 @@ void UpdateCastTransportStatus(CastTransportStatus status) {
EXPECT_TRUE(result);
}
-void AudioInitializationStatus(CastInitializationStatus status) {
- EXPECT_EQ(STATUS_AUDIO_INITIALIZED, status);
-}
-
-void VideoInitializationStatus(CastInitializationStatus status) {
- EXPECT_EQ(STATUS_VIDEO_INITIALIZED, status);
+void ExpectSuccessAndRunCallback(const base::Closure& done_cb,
+ OperationalStatus status) {
+ EXPECT_EQ(STATUS_INITIALIZED, status);
+ done_cb.Run();
}
void IgnoreRawEvents(const std::vector<PacketEvent>& packet_events,
@@ -346,13 +346,22 @@ class RunOneBenchmark {
cast_sender_ =
CastSender::Create(cast_environment_sender_, &transport_sender_);
- // Initializing audio and video senders.
- cast_sender_->InitializeAudio(audio_sender_config_,
- base::Bind(&AudioInitializationStatus));
- cast_sender_->InitializeVideo(video_sender_config_,
- base::Bind(&VideoInitializationStatus),
- CreateDefaultVideoEncodeAcceleratorCallback(),
- CreateDefaultVideoEncodeMemoryCallback());
+ // Initializing audio and video senders. The funny dance here is to
+ // synchronize on the asynchronous initialization process.
+ base::RunLoop run_loop;
+ base::WeakPtrFactory<RunOneBenchmark> weak_factory(this);
+ cast_sender_->InitializeAudio(
+ audio_sender_config_,
+ base::Bind(&ExpectSuccessAndRunCallback, run_loop.QuitClosure()));
+ run_loop.Run(); // Wait for quit closure to run.
+ weak_factory.InvalidateWeakPtrs();
+ cast_sender_->InitializeVideo(
+ video_sender_config_,
+ base::Bind(&ExpectSuccessAndRunCallback, run_loop.QuitClosure()),
+ CreateDefaultVideoEncodeAcceleratorCallback(),
+ CreateDefaultVideoEncodeMemoryCallback());
+ run_loop.Run(); // Wait for quit closure to run.
+ weak_factory.InvalidateWeakPtrs();
receiver_to_sender_.Initialize(
CreateSimplePipe(p).Pass(),

Powered by Google App Engine
This is Rietveld 408576698