Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Side by Side Diff: media/blink/webmediaplayer_impl.cc

Issue 2711153006: Add RendererFactorySelector (Closed)
Patch Set: Removed flat_map. Temp fix of -Wsometimes-initialized Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/blink/webmediaplayer_impl.h ('k') | media/blink/webmediaplayer_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
OLDNEW
« no previous file with comments | « media/blink/webmediaplayer_impl.h ('k') | media/blink/webmediaplayer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698