OLD | NEW |
1 // Copyright (c) 2008 The Chromium Authors. All rights reserved. Use of this | 1 // Copyright (c) 2008 The Chromium Authors. All rights reserved. Use of this |
2 // source code is governed by a BSD-style license that can be found in the | 2 // source code is governed by a BSD-style license that can be found in the |
3 // LICENSE file. | 3 // LICENSE file. |
4 | 4 |
5 #include "chrome/renderer/media/audio_renderer_impl.h" | 5 #include "chrome/renderer/media/audio_renderer_impl.h" |
6 #include "chrome/renderer/media/data_source_impl.h" | 6 #include "chrome/renderer/media/data_source_impl.h" |
7 #include "chrome/renderer/media/video_renderer_impl.h" | 7 #include "chrome/renderer/media/video_renderer_impl.h" |
8 #include "chrome/renderer/render_view.h" | 8 #include "chrome/renderer/render_view.h" |
9 #include "chrome/renderer/webmediaplayer_delegate_impl.h" | 9 #include "chrome/renderer/webmediaplayer_delegate_impl.h" |
10 #include "googleurl/src/gurl.h" | 10 #include "googleurl/src/gurl.h" |
11 #if defined(OS_WIN) | 11 #if defined(OS_WIN) |
12 // FFmpeg is not ready for Linux and Mac yet. | 12 // FFmpeg is not ready for Linux and Mac yet. |
13 #include "media/filters/ffmpeg_audio_decoder.h" | 13 #include "media/filters/ffmpeg_audio_decoder.h" |
14 #include "media/filters/ffmpeg_demuxer.h" | 14 #include "media/filters/ffmpeg_demuxer.h" |
| 15 #include "media/filters/ffmpeg_video_decoder.h" |
15 #endif | 16 #endif |
16 | 17 |
17 ///////////////////////////////////////////////////////////////////////////// | 18 ///////////////////////////////////////////////////////////////////////////// |
18 // Task to be posted on main thread that fire WebMediaPlayer methods. | 19 // Task to be posted on main thread that fire WebMediaPlayer methods. |
19 | 20 |
20 class NotifyWebMediaPlayerTask : public CancelableTask { | 21 class NotifyWebMediaPlayerTask : public CancelableTask { |
21 public: | 22 public: |
22 NotifyWebMediaPlayerTask(WebMediaPlayerDelegateImpl* delegate, | 23 NotifyWebMediaPlayerTask(WebMediaPlayerDelegateImpl* delegate, |
23 WebMediaPlayerMethod method) | 24 WebMediaPlayerMethod method) |
24 : delegate_(delegate), | 25 : delegate_(delegate), |
(...skipping 29 matching lines...) Expand all Loading... |
54 video_renderer_(NULL), | 55 video_renderer_(NULL), |
55 data_source_(NULL), | 56 data_source_(NULL), |
56 web_media_player_(NULL), | 57 web_media_player_(NULL), |
57 view_(view), | 58 view_(view), |
58 tasks_(kLastTaskIndex) { | 59 tasks_(kLastTaskIndex) { |
59 // TODO(hclam): Add filter factory for demuxer and decoders. | 60 // TODO(hclam): Add filter factory for demuxer and decoders. |
60 #if defined(OS_WIN) | 61 #if defined(OS_WIN) |
61 // FFmpeg is not ready for Linux and Mac yet. | 62 // FFmpeg is not ready for Linux and Mac yet. |
62 filter_factory_->AddFactory(media::FFmpegDemuxer::CreateFilterFactory()); | 63 filter_factory_->AddFactory(media::FFmpegDemuxer::CreateFilterFactory()); |
63 filter_factory_->AddFactory(media::FFmpegAudioDecoder::CreateFactory()); | 64 filter_factory_->AddFactory(media::FFmpegAudioDecoder::CreateFactory()); |
| 65 filter_factory_->AddFactory(media::FFmpegVideoDecoder::CreateFactory()); |
64 #endif | 66 #endif |
65 filter_factory_->AddFactory(AudioRendererImpl::CreateFactory(this)); | 67 filter_factory_->AddFactory(AudioRendererImpl::CreateFactory(this)); |
66 filter_factory_->AddFactory(VideoRendererImpl::CreateFactory(this)); | 68 filter_factory_->AddFactory(VideoRendererImpl::CreateFactory(this)); |
67 filter_factory_->AddFactory(DataSourceImpl::CreateFactory(this)); | 69 filter_factory_->AddFactory(DataSourceImpl::CreateFactory(this)); |
68 } | 70 } |
69 | 71 |
70 WebMediaPlayerDelegateImpl::~WebMediaPlayerDelegateImpl() { | 72 WebMediaPlayerDelegateImpl::~WebMediaPlayerDelegateImpl() { |
71 // Stop the pipeline in the first place so we won't receive any more method | 73 // Stop the pipeline in the first place so we won't receive any more method |
72 // calls from it. | 74 // calls from it. |
73 StopPipeline(false); | 75 StopPipeline(false); |
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
373 if (data_source_) { | 375 if (data_source_) { |
374 data_source_->ReleaseResources(render_thread_is_dying); | 376 data_source_->ReleaseResources(render_thread_is_dying); |
375 data_source_ = NULL; | 377 data_source_ = NULL; |
376 } | 378 } |
377 | 379 |
378 // Stop the pipeline when the render thread is being destroyed so we won't be | 380 // Stop the pipeline when the render thread is being destroyed so we won't be |
379 // posting any more messages onto it. And we just let this object and | 381 // posting any more messages onto it. And we just let this object and |
380 // associated WebMediaPlayer to leak. | 382 // associated WebMediaPlayer to leak. |
381 pipeline_.Stop(); | 383 pipeline_.Stop(); |
382 } | 384 } |
OLD | NEW |