diff options
author | hendrikw <hendrikw@chromium.org> | 2015-05-18 16:14:14 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-05-18 23:14:21 +0000 |
commit | e19cc6a61419d38f3ec658c5e74363d77e900c09 (patch) | |
tree | 351e34313a99f53dc3675014babdb8ff6f295822 /content/renderer | |
parent | 1dfbd1030bd04e76ba41bff933cd2d8fc6d1e3f0 (diff) | |
download | chromium_src-e19cc6a61419d38f3ec658c5e74363d77e900c09.zip chromium_src-e19cc6a61419d38f3ec658c5e74363d77e900c09.tar.gz chromium_src-e19cc6a61419d38f3ec658c5e74363d77e900c09.tar.bz2 |
cc: Video layers without a frame should not occlude
Added VisibleContentOpaqueRegion() to the VideoLayerImpl, if
a frame hasn't been set yet, then we don't have an opaque region.
+ test
BUG=460612
Review URL: https://codereview.chromium.org/1134663005
Cr-Commit-Position: refs/heads/master@{#330449}
Diffstat (limited to 'content/renderer')
4 files changed, 12 insertions, 0 deletions
diff --git a/content/renderer/media/android/webmediaplayer_android.cc b/content/renderer/media/android/webmediaplayer_android.cc index 763bdaa..16f17f4 100644 --- a/content/renderer/media/android/webmediaplayer_android.cc +++ b/content/renderer/media/android/webmediaplayer_android.cc @@ -1280,6 +1280,11 @@ bool WebMediaPlayerAndroid::UpdateCurrentFrame(base::TimeTicks deadline_min, return false; } +bool WebMediaPlayerAndroid::HasCurrentFrame() { + base::AutoLock auto_lock(current_frame_lock_); + return current_frame_; +} + scoped_refptr<media::VideoFrame> WebMediaPlayerAndroid::GetCurrentFrame() { scoped_refptr<VideoFrame> video_frame; { diff --git a/content/renderer/media/android/webmediaplayer_android.h b/content/renderer/media/android/webmediaplayer_android.h index 5d5f653..2627ac0 100644 --- a/content/renderer/media/android/webmediaplayer_android.h +++ b/content/renderer/media/android/webmediaplayer_android.h @@ -187,6 +187,7 @@ class WebMediaPlayerAndroid : public blink::WebMediaPlayer, cc::VideoFrameProvider::Client* client) override; bool UpdateCurrentFrame(base::TimeTicks deadline_min, base::TimeTicks deadline_max) override; + bool HasCurrentFrame() override; scoped_refptr<media::VideoFrame> GetCurrentFrame() override; void PutCurrentFrame() override; diff --git a/content/renderer/media/webmediaplayer_ms.cc b/content/renderer/media/webmediaplayer_ms.cc index de6f33b..556d58a 100644 --- a/content/renderer/media/webmediaplayer_ms.cc +++ b/content/renderer/media/webmediaplayer_ms.cc @@ -464,6 +464,11 @@ bool WebMediaPlayerMS::UpdateCurrentFrame(base::TimeTicks deadline_min, return false; } +bool WebMediaPlayerMS::HasCurrentFrame() { + base::AutoLock auto_lock(current_frame_lock_); + return current_frame_; +} + scoped_refptr<media::VideoFrame> WebMediaPlayerMS::GetCurrentFrame() { DVLOG(3) << "WebMediaPlayerMS::GetCurrentFrame"; base::AutoLock auto_lock(current_frame_lock_); diff --git a/content/renderer/media/webmediaplayer_ms.h b/content/renderer/media/webmediaplayer_ms.h index 7310fd6..7a5ba71 100644 --- a/content/renderer/media/webmediaplayer_ms.h +++ b/content/renderer/media/webmediaplayer_ms.h @@ -136,6 +136,7 @@ class WebMediaPlayerMS cc::VideoFrameProvider::Client* client) override; bool UpdateCurrentFrame(base::TimeTicks deadline_min, base::TimeTicks deadline_max) override; + bool HasCurrentFrame() override; scoped_refptr<media::VideoFrame> GetCurrentFrame() override; void PutCurrentFrame() override; |