summaryrefslogtreecommitdiffstats
path: root/media/tools
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-26 18:12:10 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-26 18:12:10 +0000
commitae39efae5e793f2c418d176946f7d870d3e7e812 (patch)
tree648786e271cf43eb5be303b624a20e0438bbeeca /media/tools
parentc7fa4367503441fefc7da332b0bddd329ceea9dd (diff)
downloadchromium_src-ae39efae5e793f2c418d176946f7d870d3e7e812.zip
chromium_src-ae39efae5e793f2c418d176946f7d870d3e7e812.tar.gz
chromium_src-ae39efae5e793f2c418d176946f7d870d3e7e812.tar.bz2
Delete media::PipelineStatusNotification as it isn't used in production code.
The existing use in player_x11 is replaced by a base::WaitableEvent. Review URL: https://codereview.chromium.org/14371024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196778 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/tools')
-rw-r--r--media/tools/player_x11/player_x11.cc45
1 files changed, 24 insertions, 21 deletions
diff --git a/media/tools/player_x11/player_x11.cc b/media/tools/player_x11/player_x11.cc
index de45880..3a41d4a 100644
--- a/media/tools/player_x11/player_x11.cc
+++ b/media/tools/player_x11/player_x11.cc
@@ -100,8 +100,15 @@ static void NeedKey(const std::string& type, scoped_ptr<uint8[]> init_data,
std::cout << "File is encrypted." << std::endl;
}
+static void SaveStatusAndSignal(base::WaitableEvent* event,
+ media::PipelineStatus* status_out,
+ media::PipelineStatus status) {
+ *status_out = status;
+ event->Signal();
+}
+
// TODO(vrk): Re-enabled audio. (crbug.com/112159)
-bool InitPipeline(const scoped_refptr<base::MessageLoopProxy>& message_loop,
+void InitPipeline(const scoped_refptr<base::MessageLoopProxy>& message_loop,
media::Demuxer* demuxer,
const PaintCB& paint_cb,
bool /* enable_audio */,
@@ -133,23 +140,21 @@ bool InitPipeline(const scoped_refptr<base::MessageLoopProxy>& message_loop,
collection->SetAudioRenderer(audio_renderer.Pass());
// Create the pipeline and start it.
+ base::WaitableEvent event(true, false);
+ media::PipelineStatus status;
+
*pipeline = new media::Pipeline(message_loop, new media::MediaLog());
- media::PipelineStatusNotification note;
(*pipeline)->Start(
collection.Pass(), base::Closure(), media::PipelineStatusCB(),
- note.Callback(), base::Bind(&OnBufferingState), base::Closure());
+ base::Bind(&SaveStatusAndSignal, &event, &status),
+ base::Bind(&OnBufferingState), base::Closure());
// Wait until the pipeline is fully initialized.
- note.Wait();
- if (note.status() != media::PIPELINE_OK) {
- std::cout << "InitPipeline: " << note.status() << std::endl;
- (*pipeline)->Stop(base::Closure());
- return false;
- }
+ event.Wait();
+ CHECK_EQ(status, media::PIPELINE_OK) << "Pipeline initialization failed";
// And start the playback.
(*pipeline)->SetPlaybackRate(1.0f);
- return true;
}
void TerminateHandler(int signal) {
@@ -281,18 +286,16 @@ int main(int argc, char** argv) {
scoped_ptr<media::Demuxer> demuxer(new media::FFmpegDemuxer(
media_thread.message_loop_proxy(), data_source, base::Bind(&NeedKey)));
- if (InitPipeline(media_thread.message_loop_proxy(), demuxer.get(),
- paint_cb, command_line->HasSwitch("audio"),
- &pipeline, &message_loop)) {
- // Main loop of the application.
- g_running = true;
+ InitPipeline(media_thread.message_loop_proxy(), demuxer.get(),
+ paint_cb, command_line->HasSwitch("audio"), &pipeline,
+ &message_loop);
- message_loop.PostTask(FROM_HERE, base::Bind(
- &PeriodicalUpdate, pipeline, &message_loop, !pipeline->HasVideo()));
- message_loop.Run();
- } else {
- std::cout << "Pipeline initialization failed..." << std::endl;
- }
+ // Main loop of the application.
+ g_running = true;
+
+ message_loop.PostTask(FROM_HERE, base::Bind(
+ &PeriodicalUpdate, pipeline, &message_loop, !pipeline->HasVideo()));
+ message_loop.Run();
// Cleanup tasks.
media_thread.Stop();