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 "webkit/media/webmediaplayer_impl.h" | 5 #include "webkit/media/webmediaplayer_impl.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 new media::GpuVideoDecoder( | 184 new media::GpuVideoDecoder( |
185 media_thread_.message_loop_proxy(), | 185 media_thread_.message_loop_proxy(), |
186 params.gpu_factories())); | 186 params.gpu_factories())); |
187 } | 187 } |
188 | 188 |
189 // Create default video renderer. | 189 // Create default video renderer. |
190 scoped_refptr<media::VideoRendererBase> video_renderer = | 190 scoped_refptr<media::VideoRendererBase> video_renderer = |
191 new media::VideoRendererBase( | 191 new media::VideoRendererBase( |
192 media_thread_.message_loop_proxy(), | 192 media_thread_.message_loop_proxy(), |
193 set_decryptor_ready_cb, | 193 set_decryptor_ready_cb, |
194 base::Bind(&WebMediaPlayerProxy::Repaint, proxy_), | 194 base::Bind(&WebMediaPlayerProxy::FrameReady, proxy_), |
195 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::SetOpaque), | 195 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::SetOpaque), |
196 true); | 196 true); |
197 filter_collection_->AddVideoRenderer(video_renderer); | 197 filter_collection_->AddVideoRenderer(video_renderer); |
198 proxy_->set_frame_provider(video_renderer); | |
199 | 198 |
200 // Create default audio renderer using the null sink if no sink was provided. | 199 // Create default audio renderer using the null sink if no sink was provided. |
201 audio_source_provider_ = new WebAudioSourceProviderImpl( | 200 audio_source_provider_ = new WebAudioSourceProviderImpl( |
202 params.audio_renderer_sink() ? params.audio_renderer_sink() : | 201 params.audio_renderer_sink() ? params.audio_renderer_sink() : |
203 new media::NullAudioSink()); | 202 new media::NullAudioSink()); |
204 filter_collection_->AddAudioRenderer(new media::AudioRendererImpl( | 203 filter_collection_->AddAudioRenderer(new media::AudioRendererImpl( |
205 media_thread_.message_loop_proxy(), | 204 media_thread_.message_loop_proxy(), |
206 audio_source_provider_, | 205 audio_source_provider_, |
207 set_decryptor_ready_cb)); | 206 set_decryptor_ready_cb)); |
208 } | 207 } |
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
638 return NULL; | 637 return NULL; |
639 } | 638 } |
640 | 639 |
641 void WebMediaPlayerImpl::putCurrentFrame( | 640 void WebMediaPlayerImpl::putCurrentFrame( |
642 WebKit::WebVideoFrame* web_video_frame) { | 641 WebKit::WebVideoFrame* web_video_frame) { |
643 if (!accelerated_compositing_reported_) { | 642 if (!accelerated_compositing_reported_) { |
644 accelerated_compositing_reported_ = true; | 643 accelerated_compositing_reported_ = true; |
645 DCHECK(frame_->view()->isAcceleratedCompositingActive()); | 644 DCHECK(frame_->view()->isAcceleratedCompositingActive()); |
646 UMA_HISTOGRAM_BOOLEAN("Media.AcceleratedCompositingActive", true); | 645 UMA_HISTOGRAM_BOOLEAN("Media.AcceleratedCompositingActive", true); |
647 } | 646 } |
648 if (web_video_frame) { | 647 delete web_video_frame; |
649 WebVideoFrameImpl* impl = static_cast<WebVideoFrameImpl*>(web_video_frame); | |
650 proxy_->PutCurrentFrame(impl->video_frame); | |
651 delete web_video_frame; | |
652 } else { | |
653 proxy_->PutCurrentFrame(NULL); | |
654 } | |
655 } | 648 } |
656 | 649 |
657 #define COMPILE_ASSERT_MATCHING_STATUS_ENUM(webkit_name, chromium_name) \ | 650 #define COMPILE_ASSERT_MATCHING_STATUS_ENUM(webkit_name, chromium_name) \ |
658 COMPILE_ASSERT(static_cast<int>(WebMediaPlayer::webkit_name) == \ | 651 COMPILE_ASSERT(static_cast<int>(WebMediaPlayer::webkit_name) == \ |
659 static_cast<int>(media::ChunkDemuxer::chromium_name), \ | 652 static_cast<int>(media::ChunkDemuxer::chromium_name), \ |
660 mismatching_status_enums) | 653 mismatching_status_enums) |
661 COMPILE_ASSERT_MATCHING_STATUS_ENUM(AddIdStatusOk, kOk); | 654 COMPILE_ASSERT_MATCHING_STATUS_ENUM(AddIdStatusOk, kOk); |
662 COMPILE_ASSERT_MATCHING_STATUS_ENUM(AddIdStatusNotSupported, kNotSupported); | 655 COMPILE_ASSERT_MATCHING_STATUS_ENUM(AddIdStatusNotSupported, kNotSupported); |
663 COMPILE_ASSERT_MATCHING_STATUS_ENUM(AddIdStatusReachedIdLimit, kReachedIdLimit); | 656 COMPILE_ASSERT_MATCHING_STATUS_ENUM(AddIdStatusReachedIdLimit, kReachedIdLimit); |
664 #undef COMPILE_ASSERT_MATCHING_ENUM | 657 #undef COMPILE_ASSERT_MATCHING_ENUM |
(...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1265 } | 1258 } |
1266 | 1259 |
1267 void WebMediaPlayerImpl::OnDurationChange() { | 1260 void WebMediaPlayerImpl::OnDurationChange() { |
1268 if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) | 1261 if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) |
1269 return; | 1262 return; |
1270 | 1263 |
1271 GetClient()->durationChanged(); | 1264 GetClient()->durationChanged(); |
1272 } | 1265 } |
1273 | 1266 |
1274 } // namespace webkit_media | 1267 } // namespace webkit_media |
OLD | NEW |