Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(42)

Side by Side Diff: chrome/renderer/webmediaplayer_delegate_impl.cc

Issue 60069: FFmpeg video decoder glue code... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | media/base/buffers.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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 }
OLDNEW
« no previous file with comments | « no previous file | media/base/buffers.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698