Chromium Code Reviews| 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 |