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 |