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 audio_source_provider_, set_decryptor_ready_cb)); | 204 audio_source_provider_, set_decryptor_ready_cb)); |
206 } | 205 } |
207 | 206 |
208 WebMediaPlayerImpl::~WebMediaPlayerImpl() { | 207 WebMediaPlayerImpl::~WebMediaPlayerImpl() { |
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
636 return NULL; | 635 return NULL; |
637 } | 636 } |
638 | 637 |
639 void WebMediaPlayerImpl::putCurrentFrame( | 638 void WebMediaPlayerImpl::putCurrentFrame( |
640 WebKit::WebVideoFrame* web_video_frame) { | 639 WebKit::WebVideoFrame* web_video_frame) { |
641 if (!accelerated_compositing_reported_) { | 640 if (!accelerated_compositing_reported_) { |
642 accelerated_compositing_reported_ = true; | 641 accelerated_compositing_reported_ = true; |
643 DCHECK(frame_->view()->isAcceleratedCompositingActive()); | 642 DCHECK(frame_->view()->isAcceleratedCompositingActive()); |
644 UMA_HISTOGRAM_BOOLEAN("Media.AcceleratedCompositingActive", true); | 643 UMA_HISTOGRAM_BOOLEAN("Media.AcceleratedCompositingActive", true); |
645 } | 644 } |
646 if (web_video_frame) { | 645 delete web_video_frame; |
scherkus (not reviewing)
2013/01/31 17:54:05
this whole pCF() stuff seems ripe for review / del
| |
647 WebVideoFrameImpl* impl = static_cast<WebVideoFrameImpl*>(web_video_frame); | |
648 proxy_->PutCurrentFrame(impl->video_frame); | |
649 delete web_video_frame; | |
650 } else { | |
651 proxy_->PutCurrentFrame(NULL); | |
652 } | |
653 } | 646 } |
654 | 647 |
655 #define COMPILE_ASSERT_MATCHING_STATUS_ENUM(webkit_name, chromium_name) \ | 648 #define COMPILE_ASSERT_MATCHING_STATUS_ENUM(webkit_name, chromium_name) \ |
656 COMPILE_ASSERT(static_cast<int>(WebMediaPlayer::webkit_name) == \ | 649 COMPILE_ASSERT(static_cast<int>(WebMediaPlayer::webkit_name) == \ |
657 static_cast<int>(media::ChunkDemuxer::chromium_name), \ | 650 static_cast<int>(media::ChunkDemuxer::chromium_name), \ |
658 mismatching_status_enums) | 651 mismatching_status_enums) |
659 COMPILE_ASSERT_MATCHING_STATUS_ENUM(AddIdStatusOk, kOk); | 652 COMPILE_ASSERT_MATCHING_STATUS_ENUM(AddIdStatusOk, kOk); |
660 COMPILE_ASSERT_MATCHING_STATUS_ENUM(AddIdStatusNotSupported, kNotSupported); | 653 COMPILE_ASSERT_MATCHING_STATUS_ENUM(AddIdStatusNotSupported, kNotSupported); |
661 COMPILE_ASSERT_MATCHING_STATUS_ENUM(AddIdStatusReachedIdLimit, kReachedIdLimit); | 654 COMPILE_ASSERT_MATCHING_STATUS_ENUM(AddIdStatusReachedIdLimit, kReachedIdLimit); |
662 #undef COMPILE_ASSERT_MATCHING_ENUM | 655 #undef COMPILE_ASSERT_MATCHING_ENUM |
(...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1263 } | 1256 } |
1264 | 1257 |
1265 void WebMediaPlayerImpl::OnDurationChange() { | 1258 void WebMediaPlayerImpl::OnDurationChange() { |
1266 if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) | 1259 if (ready_state_ == WebMediaPlayer::ReadyStateHaveNothing) |
1267 return; | 1260 return; |
1268 | 1261 |
1269 GetClient()->durationChanged(); | 1262 GetClient()->durationChanged(); |
1270 } | 1263 } |
1271 | 1264 |
1272 } // namespace webkit_media | 1265 } // namespace webkit_media |
OLD | NEW |