Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "webkit/glue/webmediaplayer_impl.h" | 5 #include "webkit/glue/webmediaplayer_impl.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| 11 #include "base/command_line.h" | 11 #include "base/command_line.h" |
| 12 #include "content/renderer/media/audio_renderer_impl.h" | |
|
scherkus (not reviewing)
2011/08/23 15:16:01
src/webkit cannot depend on src/content code
what
Chris Rogers
2011/08/24 00:41:52
I've abstracted this a bit more and now am dealing
| |
| 13 #include "content/renderer/renderer_webaudiosourceprovider_impl.h" | |
| 12 #include "media/base/composite_data_source_factory.h" | 14 #include "media/base/composite_data_source_factory.h" |
| 13 #include "media/base/filter_collection.h" | 15 #include "media/base/filter_collection.h" |
| 14 #include "media/base/limits.h" | 16 #include "media/base/limits.h" |
| 15 #include "media/base/media_log.h" | 17 #include "media/base/media_log.h" |
| 16 #include "media/base/media_switches.h" | 18 #include "media/base/media_switches.h" |
| 17 #include "media/base/pipeline_impl.h" | 19 #include "media/base/pipeline_impl.h" |
| 18 #include "media/base/video_frame.h" | 20 #include "media/base/video_frame.h" |
| 19 #include "media/filters/adaptive_demuxer.h" | 21 #include "media/filters/adaptive_demuxer.h" |
| 20 #include "media/filters/chunk_demuxer_factory.h" | 22 #include "media/filters/chunk_demuxer_factory.h" |
| 21 #include "media/filters/ffmpeg_audio_decoder.h" | 23 #include "media/filters/ffmpeg_audio_decoder.h" |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 79 return base::TimeDelta::FromMicroseconds(static_cast<int64>(integer)); | 81 return base::TimeDelta::FromMicroseconds(static_cast<int64>(integer)); |
| 80 } | 82 } |
| 81 | 83 |
| 82 } // namespace | 84 } // namespace |
| 83 | 85 |
| 84 namespace webkit_glue { | 86 namespace webkit_glue { |
| 85 | 87 |
| 86 WebMediaPlayerImpl::WebMediaPlayerImpl( | 88 WebMediaPlayerImpl::WebMediaPlayerImpl( |
| 87 WebKit::WebMediaPlayerClient* client, | 89 WebKit::WebMediaPlayerClient* client, |
| 88 media::FilterCollection* collection, | 90 media::FilterCollection* collection, |
| 91 AudioRendererImpl* audio_renderer, | |
| 89 media::MessageLoopFactory* message_loop_factory, | 92 media::MessageLoopFactory* message_loop_factory, |
| 90 MediaStreamClient* media_stream_client, | 93 MediaStreamClient* media_stream_client, |
| 91 media::MediaLog* media_log) | 94 media::MediaLog* media_log) |
| 92 : network_state_(WebKit::WebMediaPlayer::Empty), | 95 : audio_source_provider_(0), |
| 96 network_state_(WebKit::WebMediaPlayer::Empty), | |
| 93 ready_state_(WebKit::WebMediaPlayer::HaveNothing), | 97 ready_state_(WebKit::WebMediaPlayer::HaveNothing), |
| 94 main_loop_(NULL), | 98 main_loop_(NULL), |
| 95 filter_collection_(collection), | 99 filter_collection_(collection), |
| 96 pipeline_(NULL), | 100 pipeline_(NULL), |
| 97 message_loop_factory_(message_loop_factory), | 101 message_loop_factory_(message_loop_factory), |
| 98 paused_(true), | 102 paused_(true), |
| 99 seeking_(false), | 103 seeking_(false), |
| 100 playback_rate_(0.0f), | 104 playback_rate_(0.0f), |
| 101 client_(client), | 105 client_(client), |
| 102 proxy_(NULL), | 106 proxy_(NULL), |
| 103 media_stream_client_(media_stream_client), | 107 media_stream_client_(media_stream_client), |
| 104 media_log_(media_log) { | 108 media_log_(media_log) { |
| 105 // Saves the current message loop. | 109 // Saves the current message loop. |
| 106 DCHECK(!main_loop_); | 110 DCHECK(!main_loop_); |
| 107 main_loop_ = MessageLoop::current(); | 111 main_loop_ = MessageLoop::current(); |
| 108 media_log_->AddEvent( | 112 media_log_->AddEvent( |
| 109 media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_CREATED)); | 113 media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_CREATED)); |
| 114 | |
| 115 printf("audio_renderer = %p\n", audio_renderer); | |
| 116 audio_renderer_ = audio_renderer; | |
| 110 } | 117 } |
| 111 | 118 |
| 112 bool WebMediaPlayerImpl::Initialize( | 119 bool WebMediaPlayerImpl::Initialize( |
| 113 WebKit::WebFrame* frame, | 120 WebKit::WebFrame* frame, |
| 114 bool use_simple_data_source, | 121 bool use_simple_data_source, |
| 115 scoped_refptr<WebVideoRenderer> web_video_renderer) { | 122 scoped_refptr<WebVideoRenderer> web_video_renderer) { |
| 116 MessageLoop* pipeline_message_loop = | 123 MessageLoop* pipeline_message_loop = |
| 117 message_loop_factory_->GetMessageLoop("PipelineThread"); | 124 message_loop_factory_->GetMessageLoop("PipelineThread"); |
| 118 if (!pipeline_message_loop) { | 125 if (!pipeline_message_loop) { |
| 119 NOTREACHED() << "Could not start PipelineThread"; | 126 NOTREACHED() << "Could not start PipelineThread"; |
| (...skipping 695 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 815 proxy_ = NULL; | 822 proxy_ = NULL; |
| 816 } | 823 } |
| 817 } | 824 } |
| 818 | 825 |
| 819 WebKit::WebMediaPlayerClient* WebMediaPlayerImpl::GetClient() { | 826 WebKit::WebMediaPlayerClient* WebMediaPlayerImpl::GetClient() { |
| 820 DCHECK(MessageLoop::current() == main_loop_); | 827 DCHECK(MessageLoop::current() == main_loop_); |
| 821 DCHECK(client_); | 828 DCHECK(client_); |
| 822 return client_; | 829 return client_; |
| 823 } | 830 } |
| 824 | 831 |
| 832 WebKit::WebAudioSourceProvider* WebMediaPlayerImpl::webAudioSourceProvider() { | |
| 833 if (!audio_source_provider_) { | |
| 834 audio_source_provider_ = new RendererWebAudioSourceProviderImpl(audio_render er_.get()); | |
| 835 // FIXME: should NOT call this in real-time audio thread... | |
| 836 audio_renderer_->SetAudioSink(audio_source_provider_); | |
| 837 } | |
| 838 | |
| 839 return audio_source_provider_; | |
| 840 } | |
| 841 | |
| 825 } // namespace webkit_glue | 842 } // namespace webkit_glue |
| OLD | NEW |