summaryrefslogtreecommitdiffstats
path: root/media/base/video_types.cc
diff options
context:
space:
mode:
authorjbauman <jbauman@chromium.org>2015-11-30 16:43:49 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-01 00:45:59 +0000
commit87e0b939e2a9e18079326e4d37ef9d7991a1059a (patch)
tree6ed409a3feb86f1a816ae37c241216f32aa885b0 /media/base/video_types.cc
parent92e28e54832687afef1c6e9968fcd4608be05db9 (diff)
downloadchromium_src-87e0b939e2a9e18079326e4d37ef9d7991a1059a.zip
chromium_src-87e0b939e2a9e18079326e4d37ef9d7991a1059a.tar.gz
chromium_src-87e0b939e2a9e18079326e4d37ef9d7991a1059a.tar.bz2
Use XRGB for opaque hardware-decoded videos.
Detect whether the format passed in to GpuVideoDecoder is opaque, and if so use XRGB instead of ARGB to ensure that the video layer will be made opaque. BUG=560634 Review URL: https://codereview.chromium.org/1473133002 Cr-Commit-Position: refs/heads/master@{#362291}
Diffstat (limited to 'media/base/video_types.cc')
-rw-r--r--media/base/video_types.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/media/base/video_types.cc b/media/base/video_types.cc
index b6b041e..e2f137d 100644
--- a/media/base/video_types.cc
+++ b/media/base/video_types.cc
@@ -72,4 +72,28 @@ bool IsYuvPlanar(VideoPixelFormat format) {
return false;
}
+bool IsOpaque(VideoPixelFormat format) {
+ switch (format) {
+ case PIXEL_FORMAT_UNKNOWN:
+ case PIXEL_FORMAT_I420:
+ case PIXEL_FORMAT_YV12:
+ case PIXEL_FORMAT_YV16:
+ case PIXEL_FORMAT_YV24:
+ case PIXEL_FORMAT_NV12:
+ case PIXEL_FORMAT_NV21:
+ case PIXEL_FORMAT_UYVY:
+ case PIXEL_FORMAT_YUY2:
+ case PIXEL_FORMAT_XRGB:
+ case PIXEL_FORMAT_RGB24:
+ case PIXEL_FORMAT_MJPEG:
+ case PIXEL_FORMAT_MT21:
+ return true;
+ case PIXEL_FORMAT_YV12A:
+ case PIXEL_FORMAT_ARGB:
+ case PIXEL_FORMAT_RGB32:
+ break;
+ }
+ return false;
+}
+
} // namespace media