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

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

Issue 2204673004: WIP - WebMediaPlayer switch media renderer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Some revision. Created 4 years, 3 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
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 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 surface_created_cb_.Cancel(); 330 surface_created_cb_.Cancel();
331 overlay_surface_id_ = SurfaceManager::kNoSurfaceID; 331 overlay_surface_id_ = SurfaceManager::kNoSurfaceID;
332 332
333 if (decoder_requires_restart_for_overlay_) 333 if (decoder_requires_restart_for_overlay_)
334 ScheduleRestart(); 334 ScheduleRestart();
335 } 335 }
336 336
337 void WebMediaPlayerImpl::enteredFullscreen() { 337 void WebMediaPlayerImpl::enteredFullscreen() {
338 if (!force_video_overlays_ && !disable_fullscreen_video_overlays_) 338 if (!force_video_overlays_ && !disable_fullscreen_video_overlays_)
339 EnableOverlay(); 339 EnableOverlay();
340 pipeline_controller_.SetFullscreenMode(true);
340 } 341 }
341 342
342 void WebMediaPlayerImpl::exitedFullscreen() { 343 void WebMediaPlayerImpl::exitedFullscreen() {
343 if (!force_video_overlays_ && !disable_fullscreen_video_overlays_) 344 if (!force_video_overlays_ && !disable_fullscreen_video_overlays_)
344 DisableOverlay(); 345 DisableOverlay();
346 pipeline_controller_.SetFullscreenMode(false);
345 } 347 }
346 348
347 void WebMediaPlayerImpl::DoLoad(LoadType load_type, 349 void WebMediaPlayerImpl::DoLoad(LoadType load_type,
348 const blink::WebURL& url, 350 const blink::WebURL& url,
349 CORSMode cors_mode) { 351 CORSMode cors_mode) {
350 DVLOG(1) << __func__; 352 DVLOG(1) << __func__;
351 DCHECK(main_task_runner_->BelongsToCurrentThread()); 353 DCHECK(main_task_runner_->BelongsToCurrentThread());
352 354
353 GURL gurl(url); 355 GURL gurl(url);
354 ReportMetrics(load_type, gurl, frame_->getSecurityOrigin()); 356 ReportMetrics(load_type, gurl, frame_->getSecurityOrigin());
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after
905 907
906 // TODO(xhwang): Update this UMA name. https://crbug.com/589251 908 // TODO(xhwang): Update this UMA name. https://crbug.com/589251
907 UMA_HISTOGRAM_COUNTS("Media.EME.NeedKey", 1); 909 UMA_HISTOGRAM_COUNTS("Media.EME.NeedKey", 1);
908 910
909 // Recreate the watch time reporter if necessary. 911 // Recreate the watch time reporter if necessary.
910 const bool was_encrypted = is_encrypted_; 912 const bool was_encrypted = is_encrypted_;
911 is_encrypted_ = true; 913 is_encrypted_ = true;
912 if (!was_encrypted && watch_time_reporter_) 914 if (!was_encrypted && watch_time_reporter_)
913 CreateWatchTimeReporter(); 915 CreateWatchTimeReporter();
914 916
917 pipeline_controller_.SetIsEncryptedContent();
918
915 encrypted_client_->encrypted( 919 encrypted_client_->encrypted(
916 ConvertToWebInitDataType(init_data_type), init_data.data(), 920 ConvertToWebInitDataType(init_data_type), init_data.data(),
917 base::saturated_cast<unsigned int>(init_data.size())); 921 base::saturated_cast<unsigned int>(init_data.size()));
918 } 922 }
919 923
920 void WebMediaPlayerImpl::OnFFmpegMediaTracksUpdated( 924 void WebMediaPlayerImpl::OnFFmpegMediaTracksUpdated(
921 std::unique_ptr<MediaTracks> tracks) { 925 std::unique_ptr<MediaTracks> tracks) {
922 // For MSE/chunk_demuxer case the media track updates are handled by 926 // For MSE/chunk_demuxer case the media track updates are handled by
923 // WebSourceBufferImpl. 927 // WebSourceBufferImpl.
924 DCHECK(demuxer_.get()); 928 DCHECK(demuxer_.get());
(...skipping 513 matching lines...) Expand 10 before | Expand all | Expand 10 after
1438 1442
1439 std::unique_ptr<Renderer> WebMediaPlayerImpl::CreateRenderer() { 1443 std::unique_ptr<Renderer> WebMediaPlayerImpl::CreateRenderer() {
1440 if (force_video_overlays_) 1444 if (force_video_overlays_)
1441 EnableOverlay(); 1445 EnableOverlay();
1442 1446
1443 RequestSurfaceCB request_surface_cb; 1447 RequestSurfaceCB request_surface_cb;
1444 #if defined(OS_ANDROID) 1448 #if defined(OS_ANDROID)
1445 request_surface_cb = 1449 request_surface_cb =
1446 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnSurfaceRequested); 1450 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnSurfaceRequested);
1447 #endif 1451 #endif
1452 bool is_remoting = pipeline_controller_.ShouldUseRemotingRenderer();
1453 // TODO(xjz): Pass |is_remoting| to CreateRenderer() to create the proper
1454 // renderer.
1455 VLOG(3) << "Create " << (is_remoting ? "Remoting" : "Local") << " renderer.";
1448 return renderer_factory_->CreateRenderer( 1456 return renderer_factory_->CreateRenderer(
1449 media_task_runner_, worker_task_runner_, audio_source_provider_.get(), 1457 media_task_runner_, worker_task_runner_, audio_source_provider_.get(),
1450 compositor_, request_surface_cb); 1458 compositor_, request_surface_cb);
1451 } 1459 }
1452 1460
1453 void WebMediaPlayerImpl::StartPipeline() { 1461 void WebMediaPlayerImpl::StartPipeline() {
1454 DCHECK(main_task_runner_->BelongsToCurrentThread()); 1462 DCHECK(main_task_runner_->BelongsToCurrentThread());
1455 1463
1456 Demuxer::EncryptedMediaInitDataCB encrypted_media_init_data_cb = 1464 Demuxer::EncryptedMediaInitDataCB encrypted_media_init_data_cb =
1457 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnEncryptedMediaInitData); 1465 BIND_TO_RENDER_LOOP(&WebMediaPlayerImpl::OnEncryptedMediaInitData);
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
1815 hasAudio(), hasVideo(), !!chunk_demuxer_, is_encrypted_, media_log_, 1823 hasAudio(), hasVideo(), !!chunk_demuxer_, is_encrypted_, media_log_,
1816 pipeline_metadata_.natural_size, 1824 pipeline_metadata_.natural_size,
1817 base::Bind(&GetCurrentTimeInternal, this))); 1825 base::Bind(&GetCurrentTimeInternal, this)));
1818 watch_time_reporter_->OnVolumeChange(volume_); 1826 watch_time_reporter_->OnVolumeChange(volume_);
1819 if (delegate_ && delegate_->IsHidden()) 1827 if (delegate_ && delegate_->IsHidden())
1820 watch_time_reporter_->OnHidden(); 1828 watch_time_reporter_->OnHidden();
1821 else 1829 else
1822 watch_time_reporter_->OnShown(); 1830 watch_time_reporter_->OnShown();
1823 } 1831 }
1824 1832
1833 void WebMediaPlayerImpl::ancestorEnteredFullscreen() {
1834 pipeline_controller_.SetFullscreenMode(true);
1835 }
1836
1837 void WebMediaPlayerImpl::ancestorExitedFullscreen() {
1838 pipeline_controller_.SetFullscreenMode(false);
1839 }
1840
1825 } // namespace media 1841 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698