| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "media/tools/player_wtl/movie.h" | 5 #include "media/tools/player_wtl/movie.h" |
| 6 | 6 |
| 7 #include "base/memory/singleton.h" | 7 #include "base/memory/singleton.h" |
| 8 #include "base/threading/platform_thread.h" | 8 #include "base/threading/platform_thread.h" |
| 9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
| 10 #include "media/audio/audio_manager.h" | 10 #include "media/audio/audio_manager.h" |
| 11 #include "media/base/filter_collection.h" | 11 #include "media/base/filter_collection.h" |
| 12 #include "media/base/media_log.h" | 12 #include "media/base/media_log.h" |
| 13 #include "media/base/message_loop_factory_impl.h" | 13 #include "media/base/message_loop_factory_impl.h" |
| 14 #include "media/base/pipeline.h" | 14 #include "media/base/pipeline.h" |
| 15 #include "media/filters/ffmpeg_audio_decoder.h" | 15 #include "media/filters/ffmpeg_audio_decoder.h" |
| 16 #include "media/filters/ffmpeg_demuxer_factory.h" | 16 #include "media/filters/ffmpeg_demuxer_factory.h" |
| 17 #include "media/filters/ffmpeg_video_decoder.h" | 17 #include "media/filters/ffmpeg_video_decoder.h" |
| 18 #include "media/filters/file_data_source.h" | 18 #include "media/filters/file_data_source.h" |
| 19 #include "media/filters/null_audio_renderer.h" | 19 #include "media/filters/null_audio_renderer.h" |
| 20 #include "media/filters/reference_audio_renderer.h" | |
| 21 #include "media/filters/video_renderer_base.h" | 20 #include "media/filters/video_renderer_base.h" |
| 22 | 21 |
| 23 using media::FFmpegAudioDecoder; | 22 using media::FFmpegAudioDecoder; |
| 24 using media::FFmpegDemuxerFactory; | 23 using media::FFmpegDemuxerFactory; |
| 25 using media::FFmpegVideoDecoder; | 24 using media::FFmpegVideoDecoder; |
| 26 using media::FileDataSource; | 25 using media::FileDataSource; |
| 27 using media::FilterCollection; | 26 using media::FilterCollection; |
| 28 using media::Pipeline; | 27 using media::Pipeline; |
| 29 using media::ReferenceAudioRenderer; | |
| 30 | 28 |
| 31 namespace media { | 29 namespace media { |
| 32 | 30 |
| 33 Movie::Movie() | 31 Movie::Movie() |
| 34 : audio_manager_(AudioManager::Create()), | 32 : audio_manager_(AudioManager::Create()), |
| 35 enable_audio_(true), | 33 enable_audio_(false), |
| 36 enable_draw_(true), | 34 enable_draw_(true), |
| 37 enable_dump_yuv_file_(false), | 35 enable_dump_yuv_file_(false), |
| 38 enable_pause_(false), | 36 enable_pause_(false), |
| 39 max_threads_(0), | 37 max_threads_(0), |
| 40 play_rate_(1.0f), | 38 play_rate_(1.0f), |
| 41 movie_dib_(NULL), | 39 movie_dib_(NULL), |
| 42 movie_hwnd_(0) { | 40 movie_hwnd_(0) { |
| 43 } | 41 } |
| 44 | 42 |
| 45 Movie::~Movie() { | 43 Movie::~Movie() { |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 | 77 |
| 80 // Create filter collection. | 78 // Create filter collection. |
| 81 scoped_ptr<FilterCollection> collection(new FilterCollection()); | 79 scoped_ptr<FilterCollection> collection(new FilterCollection()); |
| 82 collection->SetDemuxerFactory(scoped_ptr<DemuxerFactory>( | 80 collection->SetDemuxerFactory(scoped_ptr<DemuxerFactory>( |
| 83 new FFmpegDemuxerFactory(data_source, pipeline_loop))); | 81 new FFmpegDemuxerFactory(data_source, pipeline_loop))); |
| 84 collection->AddAudioDecoder(new FFmpegAudioDecoder( | 82 collection->AddAudioDecoder(new FFmpegAudioDecoder( |
| 85 message_loop_factory_->GetMessageLoop("AudioDecoderThread"))); | 83 message_loop_factory_->GetMessageLoop("AudioDecoderThread"))); |
| 86 collection->AddVideoDecoder(new FFmpegVideoDecoder( | 84 collection->AddVideoDecoder(new FFmpegVideoDecoder( |
| 87 message_loop_factory_->GetMessageLoop("VideoDecoderThread"))); | 85 message_loop_factory_->GetMessageLoop("VideoDecoderThread"))); |
| 88 | 86 |
| 89 if (enable_audio_) { | 87 // TODO(vrk): Re-enabled audio. (crbug.com/112159) |
| 90 collection->AddAudioRenderer( | 88 collection->AddAudioRenderer(new media::NullAudioRenderer()); |
| 91 new ReferenceAudioRenderer(audio_manager_)); | |
| 92 } else { | |
| 93 collection->AddAudioRenderer(new media::NullAudioRenderer()); | |
| 94 } | |
| 95 collection->AddVideoRenderer(video_renderer); | 89 collection->AddVideoRenderer(video_renderer); |
| 96 | 90 |
| 97 // Create and start our pipeline. | 91 // Create and start our pipeline. |
| 98 media::PipelineStatusNotification note; | 92 media::PipelineStatusNotification note; |
| 99 pipeline_->Start( | 93 pipeline_->Start( |
| 100 collection.Pass(), | 94 collection.Pass(), |
| 101 url_utf8, | 95 url_utf8, |
| 102 media::PipelineStatusCB(), | 96 media::PipelineStatusCB(), |
| 103 media::PipelineStatusCB(), | 97 media::PipelineStatusCB(), |
| 104 media::NetworkEventCB(), | 98 media::NetworkEventCB(), |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 enable_pause_ = pause; | 149 enable_pause_ = pause; |
| 156 Play(play_rate_); | 150 Play(play_rate_); |
| 157 } | 151 } |
| 158 | 152 |
| 159 // Get playback pause state. | 153 // Get playback pause state. |
| 160 bool Movie::GetPause() { | 154 bool Movie::GetPause() { |
| 161 return enable_pause_; | 155 return enable_pause_; |
| 162 } | 156 } |
| 163 | 157 |
| 164 void Movie::SetAudioEnable(bool enable_audio) { | 158 void Movie::SetAudioEnable(bool enable_audio) { |
| 165 enable_audio_ = enable_audio; | |
| 166 } | 159 } |
| 167 | 160 |
| 168 bool Movie::GetAudioEnable() { | 161 bool Movie::GetAudioEnable() { |
| 169 return enable_audio_; | 162 return enable_audio_; |
| 170 } | 163 } |
| 171 | 164 |
| 172 void Movie::SetDrawEnable(bool enable_draw) { | 165 void Movie::SetDrawEnable(bool enable_draw) { |
| 173 enable_draw_ = enable_draw; | 166 enable_draw_ = enable_draw; |
| 174 } | 167 } |
| 175 | 168 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 189 void Movie::Close() { | 182 void Movie::Close() { |
| 190 if (pipeline_) { | 183 if (pipeline_) { |
| 191 pipeline_->Stop(media::PipelineStatusCB()); | 184 pipeline_->Stop(media::PipelineStatusCB()); |
| 192 pipeline_ = NULL; | 185 pipeline_ = NULL; |
| 193 } | 186 } |
| 194 | 187 |
| 195 message_loop_factory_.reset(); | 188 message_loop_factory_.reset(); |
| 196 } | 189 } |
| 197 | 190 |
| 198 } // namespace media | 191 } // namespace media |
| OLD | NEW |