diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-26 18:12:10 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-26 18:12:10 +0000 |
commit | ae39efae5e793f2c418d176946f7d870d3e7e812 (patch) | |
tree | 648786e271cf43eb5be303b624a20e0438bbeeca /media/tools | |
parent | c7fa4367503441fefc7da332b0bddd329ceea9dd (diff) | |
download | chromium_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.cc | 45 |
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(); |