| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "media/blink/webmediaplayer_impl.h" | 5 #include "media/blink/webmediaplayer_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 #include <limits> | 9 #include <limits> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 168 UrlData::CORS_UNSPECIFIED); | 168 UrlData::CORS_UNSPECIFIED); |
| 169 STATIC_ASSERT_ENUM(WebMediaPlayer::kCORSModeAnonymous, UrlData::CORS_ANONYMOUS); | 169 STATIC_ASSERT_ENUM(WebMediaPlayer::kCORSModeAnonymous, UrlData::CORS_ANONYMOUS); |
| 170 STATIC_ASSERT_ENUM(WebMediaPlayer::kCORSModeUseCredentials, | 170 STATIC_ASSERT_ENUM(WebMediaPlayer::kCORSModeUseCredentials, |
| 171 UrlData::CORS_USE_CREDENTIALS); | 171 UrlData::CORS_USE_CREDENTIALS); |
| 172 | 172 |
| 173 WebMediaPlayerImpl::WebMediaPlayerImpl( | 173 WebMediaPlayerImpl::WebMediaPlayerImpl( |
| 174 blink::WebLocalFrame* frame, | 174 blink::WebLocalFrame* frame, |
| 175 blink::WebMediaPlayerClient* client, | 175 blink::WebMediaPlayerClient* client, |
| 176 blink::WebMediaPlayerEncryptedMediaClient* encrypted_client, | 176 blink::WebMediaPlayerEncryptedMediaClient* encrypted_client, |
| 177 WebMediaPlayerDelegate* delegate, | 177 WebMediaPlayerDelegate* delegate, |
| 178 std::unique_ptr<RendererFactory> renderer_factory, | 178 std::unique_ptr<RendererFactorySelector> renderer_factory_selector, |
| 179 linked_ptr<UrlIndex> url_index, | 179 linked_ptr<UrlIndex> url_index, |
| 180 std::unique_ptr<WebMediaPlayerParams> params) | 180 std::unique_ptr<WebMediaPlayerParams> params) |
| 181 : frame_(frame), | 181 : frame_(frame), |
| 182 delegate_state_(DelegateState::GONE), | 182 delegate_state_(DelegateState::GONE), |
| 183 delegate_has_audio_(false), | 183 delegate_has_audio_(false), |
| 184 network_state_(WebMediaPlayer::kNetworkStateEmpty), | 184 network_state_(WebMediaPlayer::kNetworkStateEmpty), |
| 185 ready_state_(WebMediaPlayer::kReadyStateHaveNothing), | 185 ready_state_(WebMediaPlayer::kReadyStateHaveNothing), |
| 186 highest_ready_state_(WebMediaPlayer::kReadyStateHaveNothing), | 186 highest_ready_state_(WebMediaPlayer::kReadyStateHaveNothing), |
| 187 preload_(MultibufferDataSource::AUTO), | 187 preload_(MultibufferDataSource::AUTO), |
| 188 main_task_runner_(frame->LoadingTaskRunner()), | 188 main_task_runner_(frame->LoadingTaskRunner()), |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 223 // Threaded compositing isn't enabled universally yet. | 223 // Threaded compositing isn't enabled universally yet. |
| 224 compositor_task_runner_(params->compositor_task_runner() | 224 compositor_task_runner_(params->compositor_task_runner() |
| 225 ? params->compositor_task_runner() | 225 ? params->compositor_task_runner() |
| 226 : base::ThreadTaskRunnerHandle::Get()), | 226 : base::ThreadTaskRunnerHandle::Get()), |
| 227 compositor_(new VideoFrameCompositor(compositor_task_runner_)), | 227 compositor_(new VideoFrameCompositor(compositor_task_runner_)), |
| 228 #if defined(OS_ANDROID) // WMPI_CAST | 228 #if defined(OS_ANDROID) // WMPI_CAST |
| 229 cast_impl_(this, client_, params->context_3d_cb()), | 229 cast_impl_(this, client_, params->context_3d_cb()), |
| 230 #endif | 230 #endif |
| 231 volume_(1.0), | 231 volume_(1.0), |
| 232 volume_multiplier_(1.0), | 232 volume_multiplier_(1.0), |
| 233 renderer_factory_(std::move(renderer_factory)), | 233 renderer_factory_selector_(std::move(renderer_factory_selector)), |
| 234 surface_manager_(params->surface_manager()), | 234 surface_manager_(params->surface_manager()), |
| 235 overlay_surface_id_(SurfaceManager::kNoSurfaceID), | 235 overlay_surface_id_(SurfaceManager::kNoSurfaceID), |
| 236 suppress_destruction_errors_(false), | 236 suppress_destruction_errors_(false), |
| 237 suspend_enabled_(params->allow_suspend()), | 237 suspend_enabled_(params->allow_suspend()), |
| 238 use_fallback_path_(false), | 238 use_fallback_path_(false), |
| 239 is_encrypted_(false), | 239 is_encrypted_(false), |
| 240 preroll_attempt_pending_(false), | 240 preroll_attempt_pending_(false), |
| 241 observer_(params->media_observer()), | 241 observer_(params->media_observer()), |
| 242 max_keyframe_distance_to_disable_background_video_( | 242 max_keyframe_distance_to_disable_background_video_( |
| 243 params->max_keyframe_distance_to_disable_background_video()), | 243 params->max_keyframe_distance_to_disable_background_video()), |
| 244 max_keyframe_distance_to_disable_background_video_mse_( | 244 max_keyframe_distance_to_disable_background_video_mse_( |
| 245 params->max_keyframe_distance_to_disable_background_video_mse()), | 245 params->max_keyframe_distance_to_disable_background_video_mse()), |
| 246 enable_instant_source_buffer_gc_( | 246 enable_instant_source_buffer_gc_( |
| 247 params->enable_instant_source_buffer_gc()), | 247 params->enable_instant_source_buffer_gc()), |
| 248 embedded_media_experience_enabled_( | 248 embedded_media_experience_enabled_( |
| 249 params->embedded_media_experience_enabled()) { | 249 params->embedded_media_experience_enabled()) { |
| 250 DVLOG(1) << __func__; | 250 DVLOG(1) << __func__; |
| 251 DCHECK(!adjust_allocated_memory_cb_.is_null()); | 251 DCHECK(!adjust_allocated_memory_cb_.is_null()); |
| 252 DCHECK(renderer_factory_); | 252 DCHECK(renderer_factory_selector_); |
| 253 DCHECK(client_); | 253 DCHECK(client_); |
| 254 DCHECK(delegate_); | 254 DCHECK(delegate_); |
| 255 | 255 |
| 256 tick_clock_.reset(new base::DefaultTickClock()); | 256 tick_clock_.reset(new base::DefaultTickClock()); |
| 257 | 257 |
| 258 force_video_overlays_ = base::CommandLine::ForCurrentProcess()->HasSwitch( | 258 force_video_overlays_ = base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 259 switches::kForceVideoOverlays); | 259 switches::kForceVideoOverlays); |
| 260 | 260 |
| 261 enable_fullscreen_video_overlays_ = | 261 enable_fullscreen_video_overlays_ = |
| 262 base::FeatureList::IsEnabled(media::kOverlayFullscreenVideo); | 262 base::FeatureList::IsEnabled(media::kOverlayFullscreenVideo); |
| (...skipping 1455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1718 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 1718 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
| 1719 | 1719 |
| 1720 if (force_video_overlays_) | 1720 if (force_video_overlays_) |
| 1721 EnableOverlay(); | 1721 EnableOverlay(); |
| 1722 | 1722 |
| 1723 RequestSurfaceCB request_surface_cb; | 1723 RequestSurfaceCB request_surface_cb; |
| 1724 #if defined(OS_ANDROID) | 1724 #if defined(OS_ANDROID) |
| 1725 request_surface_cb = BindToCurrentLoop( | 1725 request_surface_cb = BindToCurrentLoop( |
| 1726 base::Bind(&WebMediaPlayerImpl::OnSurfaceRequested, AsWeakPtr())); | 1726 base::Bind(&WebMediaPlayerImpl::OnSurfaceRequested, AsWeakPtr())); |
| 1727 #endif | 1727 #endif |
| 1728 return renderer_factory_->CreateRenderer( | 1728 return renderer_factory_selector_->GetCurrentFactory()->CreateRenderer( |
| 1729 media_task_runner_, worker_task_runner_, audio_source_provider_.get(), | 1729 media_task_runner_, worker_task_runner_, audio_source_provider_.get(), |
| 1730 compositor_, request_surface_cb); | 1730 compositor_, request_surface_cb); |
| 1731 } | 1731 } |
| 1732 | 1732 |
| 1733 void WebMediaPlayerImpl::StartPipeline() { | 1733 void WebMediaPlayerImpl::StartPipeline() { |
| 1734 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 1734 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
| 1735 | 1735 |
| 1736 Demuxer::EncryptedMediaInitDataCB encrypted_media_init_data_cb = | 1736 Demuxer::EncryptedMediaInitDataCB encrypted_media_init_data_cb = |
| 1737 BindToCurrentLoop(base::Bind( | 1737 BindToCurrentLoop(base::Bind( |
| 1738 &WebMediaPlayerImpl::OnEncryptedMediaInitData, AsWeakPtr())); | 1738 &WebMediaPlayerImpl::OnEncryptedMediaInitData, AsWeakPtr())); |
| (...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2395 | 2395 |
| 2396 if (is_encrypted_) | 2396 if (is_encrypted_) |
| 2397 UMA_HISTOGRAM_VIDEO_HEIGHT("Media.VideoHeight.Initial.EME", height); | 2397 UMA_HISTOGRAM_VIDEO_HEIGHT("Media.VideoHeight.Initial.EME", height); |
| 2398 | 2398 |
| 2399 UMA_HISTOGRAM_VIDEO_HEIGHT("Media.VideoHeight.Initial.All", height); | 2399 UMA_HISTOGRAM_VIDEO_HEIGHT("Media.VideoHeight.Initial.All", height); |
| 2400 } | 2400 } |
| 2401 | 2401 |
| 2402 #undef UMA_HISTOGRAM_VIDEO_HEIGHT | 2402 #undef UMA_HISTOGRAM_VIDEO_HEIGHT |
| 2403 | 2403 |
| 2404 } // namespace media | 2404 } // namespace media |
| OLD | NEW |