summaryrefslogtreecommitdiffstats
path: root/media/tools/player_wtl/movie.cc
diff options
context:
space:
mode:
Diffstat (limited to 'media/tools/player_wtl/movie.cc')
-rw-r--r--media/tools/player_wtl/movie.cc187
1 files changed, 0 insertions, 187 deletions
diff --git a/media/tools/player_wtl/movie.cc b/media/tools/player_wtl/movie.cc
deleted file mode 100644
index e30abd7..0000000
--- a/media/tools/player_wtl/movie.cc
+++ /dev/null
@@ -1,187 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "media/tools/player_wtl/movie.h"
-
-#include "base/bind.h"
-#include "base/memory/singleton.h"
-#include "base/threading/platform_thread.h"
-#include "base/utf_string_conversions.h"
-#include "media/audio/audio_manager.h"
-#include "media/audio/null_audio_sink.h"
-#include "media/base/filter_collection.h"
-#include "media/base/media_log.h"
-#include "media/base/message_loop_factory.h"
-#include "media/base/pipeline.h"
-#include "media/filters/audio_renderer_impl.h"
-#include "media/filters/ffmpeg_audio_decoder.h"
-#include "media/filters/ffmpeg_demuxer.h"
-#include "media/filters/ffmpeg_video_decoder.h"
-#include "media/filters/file_data_source.h"
-#include "media/filters/video_renderer_base.h"
-
-namespace media {
-
-static void OnBufferingState(media::Pipeline::BufferingState buffering_state) {}
-
-Movie::Movie()
- : audio_manager_(AudioManager::Create()),
- enable_audio_(false),
- enable_draw_(true),
- enable_dump_yuv_file_(false),
- enable_pause_(false),
- max_threads_(0),
- play_rate_(1.0f),
- movie_dib_(NULL),
- movie_hwnd_(0) {
-}
-
-Movie::~Movie() {
-}
-
-Movie* Movie::GetInstance() {
- return Singleton<Movie>::get();
-}
-
-bool Movie::IsOpen() {
- return pipeline_ != NULL;
-}
-
-void Movie::SetFrameBuffer(HBITMAP hbmp, HWND hwnd) {
- movie_dib_ = hbmp;
- movie_hwnd_ = hwnd;
-}
-
-bool Movie::Open(const wchar_t* file_path, VideoRendererBase* video_renderer) {
- // Close previous movie.
- if (pipeline_) {
- Close();
- }
-
- message_loop_factory_.reset(new media::MessageLoopFactory());
-
- scoped_refptr<base::MessageLoopProxy> pipeline_loop =
- message_loop_factory_->GetMessageLoop(
- media::MessageLoopFactory::kPipeline);
- pipeline_ = new Pipeline(pipeline_loop, new media::MediaLog());
-
- // Open the file.
- scoped_refptr<FileDataSource> data_source = new FileDataSource();
- if (!data_source->Initialize(FilePath(file_path))) {
- return false;
- }
-
- // Create filter collection.
- scoped_ptr<FilterCollection> collection(new FilterCollection());
- collection->SetDemuxer(new FFmpegDemuxer(pipeline_loop, data_source));
- collection->GetAudioDecoders()->push_back(new FFmpegAudioDecoder(
- pipeline_loop));
- collection->GetVideoDecoders()->push_back(new FFmpegVideoDecoder(
- pipeline_loop, NULL));
-
- // TODO(vrk): Re-enabled audio. (crbug.com/112159)
- collection->AddAudioRenderer(
- new media::AudioRendererImpl(new media::NullAudioSink()));
- collection->AddVideoRenderer(video_renderer);
-
- // Create and start our pipeline.
- media::PipelineStatusNotification note;
- pipeline_->Start(
- collection.Pass(),
- media::PipelineStatusCB(),
- media::PipelineStatusCB(),
- note.Callback(),
- base::Bind(&OnBufferingState));
-
- // Wait until the pipeline is fully initialized.
- note.Wait();
- if (note.status() != PIPELINE_OK)
- return false;
- pipeline_->SetPlaybackRate(play_rate_);
- return true;
-}
-
-void Movie::Play(float rate) {
- // Begin playback.
- if (pipeline_)
- pipeline_->SetPlaybackRate(enable_pause_ ? 0.0f : rate);
- if (rate > 0.0f)
- play_rate_ = rate;
-}
-
-// Get playback rate.
-float Movie::GetPlayRate() {
- return play_rate_;
-}
-
-// Get movie duration in seconds.
-float Movie::GetDuration() {
- float duration = 0.f;
- if (pipeline_)
- duration = (pipeline_->GetMediaDuration()).InMicroseconds() / 1000000.0f;
- return duration;
-}
-
-// Get current movie position in seconds.
-float Movie::GetPosition() {
- float position = 0.f;
- if (pipeline_)
- position = (pipeline_->GetMediaTime()).InMicroseconds() / 1000000.0f;
- return position;
-}
-
-// Set current movie position in seconds.
-void Movie::SetPosition(float position) {
- int64 us = static_cast<int64>(position * 1000000);
- base::TimeDelta time = base::TimeDelta::FromMicroseconds(us);
- if (pipeline_)
- pipeline_->Seek(time, media::PipelineStatusCB());
-}
-
-
-// Set playback pause.
-void Movie::SetPause(bool pause) {
- enable_pause_ = pause;
- Play(play_rate_);
-}
-
-// Get playback pause state.
-bool Movie::GetPause() {
- return enable_pause_;
-}
-
-void Movie::SetAudioEnable(bool enable_audio) {
-}
-
-bool Movie::GetAudioEnable() {
- return enable_audio_;
-}
-
-void Movie::SetDrawEnable(bool enable_draw) {
- enable_draw_ = enable_draw;
-}
-
-bool Movie::GetDrawEnable() {
- return enable_draw_;
-}
-
-void Movie::SetDumpYuvFileEnable(bool enable_dump_yuv_file) {
- enable_dump_yuv_file_ = enable_dump_yuv_file;
-}
-
-bool Movie::GetDumpYuvFileEnable() {
- return enable_dump_yuv_file_;
-}
-
-// Teardown.
-void Movie::Close() {
- if (pipeline_) {
- pipeline_->Stop(base::Closure());
- pipeline_ = NULL;
- }
-
- message_loop_factory_.reset();
-}
-
-} // namespace media