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 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
334 #if defined(OS_ANDROID) | 334 #if defined(OS_ANDROID) |
335 return true; | 335 return true; |
336 #else | 336 #else |
337 return false; | 337 return false; |
338 #endif | 338 #endif |
339 } | 339 } |
340 | 340 |
341 void WebMediaPlayerImpl::EnableOverlay() { | 341 void WebMediaPlayerImpl::EnableOverlay() { |
342 overlay_enabled_ = true; | 342 overlay_enabled_ = true; |
343 if (surface_manager_) { | 343 if (surface_manager_) { |
344 overlay_surface_id_.reset(); | |
344 surface_created_cb_.Reset( | 345 surface_created_cb_.Reset( |
345 base::Bind(&WebMediaPlayerImpl::OnSurfaceCreated, AsWeakPtr())); | 346 base::Bind(&WebMediaPlayerImpl::OnSurfaceCreated, AsWeakPtr())); |
346 surface_manager_->CreateFullscreenSurface(pipeline_metadata_.natural_size, | 347 surface_manager_->CreateFullscreenSurface(pipeline_metadata_.natural_size, |
347 surface_created_cb_.callback()); | 348 surface_created_cb_.callback()); |
348 } | 349 } |
349 | 350 |
350 if (decoder_requires_restart_for_overlay_) | 351 if (decoder_requires_restart_for_overlay_) |
351 ScheduleRestart(); | 352 ScheduleRestart(); |
352 } | 353 } |
353 | 354 |
354 void WebMediaPlayerImpl::DisableOverlay() { | 355 void WebMediaPlayerImpl::DisableOverlay() { |
355 overlay_enabled_ = false; | 356 overlay_enabled_ = false; |
356 surface_created_cb_.Cancel(); | 357 surface_created_cb_.Cancel(); |
357 overlay_surface_id_ = SurfaceManager::kNoSurfaceID; | 358 overlay_surface_id_ = SurfaceManager::kNoSurfaceID; |
358 | 359 |
359 if (decoder_requires_restart_for_overlay_) | 360 if (decoder_requires_restart_for_overlay_) |
360 ScheduleRestart(); | 361 ScheduleRestart(); |
361 else if (!set_surface_cb_.is_null()) | 362 else if (!set_surface_cb_.is_null()) |
362 set_surface_cb_.Run(overlay_surface_id_); | 363 set_surface_cb_.Run(*overlay_surface_id_); |
363 } | 364 } |
364 | 365 |
365 void WebMediaPlayerImpl::EnteredFullscreen() { | 366 void WebMediaPlayerImpl::EnteredFullscreen() { |
366 // |force_video_overlays_| implies that we're already in overlay mode, so take | 367 // |force_video_overlays_| implies that we're already in overlay mode, so take |
367 // no action here. Otherwise, switch to an overlay if it's allowed and if | 368 // no action here. Otherwise, switch to an overlay if it's allowed and if |
368 // it will display properly. | 369 // it will display properly. |
369 if (!force_video_overlays_ && enable_fullscreen_video_overlays_ && | 370 if (!force_video_overlays_ && enable_fullscreen_video_overlays_ && |
370 DoesOverlaySupportMetadata()) { | 371 DoesOverlaySupportMetadata()) { |
371 EnableOverlay(); | 372 EnableOverlay(); |
372 } | 373 } |
(...skipping 1328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1701 // | 1702 // |
1702 // If |decoder_requires_restart_for_overlay| is true, we must restart the | 1703 // If |decoder_requires_restart_for_overlay| is true, we must restart the |
1703 // pipeline for fullscreen transitions. The decoder is unable to switch | 1704 // pipeline for fullscreen transitions. The decoder is unable to switch |
1704 // surfaces otherwise. If false, we simply need to tell the decoder about the | 1705 // surfaces otherwise. If false, we simply need to tell the decoder about the |
1705 // new surface and it will handle things seamlessly. | 1706 // new surface and it will handle things seamlessly. |
1706 decoder_requires_restart_for_overlay_ = decoder_requires_restart_for_overlay; | 1707 decoder_requires_restart_for_overlay_ = decoder_requires_restart_for_overlay; |
1707 set_surface_cb_ = set_surface_cb; | 1708 set_surface_cb_ = set_surface_cb; |
1708 | 1709 |
1709 // If we're waiting for the surface to arrive, OnSurfaceCreated() will be | 1710 // If we're waiting for the surface to arrive, OnSurfaceCreated() will be |
1710 // called later when it arrives; so do nothing for now. | 1711 // called later when it arrives; so do nothing for now. |
1711 if (overlay_enabled_ && overlay_surface_id_ == SurfaceManager::kNoSurfaceID) | 1712 if (overlay_enabled_ && !overlay_surface_id_) |
watk
2017/05/01 20:34:58
overlay_enabled_ is redundant I believe
liberato (no reviews please)
2017/05/01 20:42:42
Done.
| |
1712 return; | 1713 return; |
1713 | 1714 |
1714 OnSurfaceCreated(overlay_surface_id_); | 1715 OnSurfaceCreated(*overlay_surface_id_); |
1715 } | 1716 } |
1716 | 1717 |
1717 std::unique_ptr<Renderer> WebMediaPlayerImpl::CreateRenderer() { | 1718 std::unique_ptr<Renderer> WebMediaPlayerImpl::CreateRenderer() { |
1718 DCHECK(main_task_runner_->BelongsToCurrentThread()); | 1719 DCHECK(main_task_runner_->BelongsToCurrentThread()); |
1719 | 1720 |
1720 if (force_video_overlays_) | 1721 if (force_video_overlays_) |
1721 EnableOverlay(); | 1722 EnableOverlay(); |
1722 | 1723 |
1723 RequestSurfaceCB request_surface_cb; | 1724 RequestSurfaceCB request_surface_cb; |
1724 #if defined(OS_ANDROID) | 1725 #if defined(OS_ANDROID) |
(...skipping 670 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2395 | 2396 |
2396 if (is_encrypted_) | 2397 if (is_encrypted_) |
2397 UMA_HISTOGRAM_VIDEO_HEIGHT("Media.VideoHeight.Initial.EME", height); | 2398 UMA_HISTOGRAM_VIDEO_HEIGHT("Media.VideoHeight.Initial.EME", height); |
2398 | 2399 |
2399 UMA_HISTOGRAM_VIDEO_HEIGHT("Media.VideoHeight.Initial.All", height); | 2400 UMA_HISTOGRAM_VIDEO_HEIGHT("Media.VideoHeight.Initial.All", height); |
2400 } | 2401 } |
2401 | 2402 |
2402 #undef UMA_HISTOGRAM_VIDEO_HEIGHT | 2403 #undef UMA_HISTOGRAM_VIDEO_HEIGHT |
2403 | 2404 |
2404 } // namespace media | 2405 } // namespace media |
OLD | NEW |