diff options
author | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-10 00:26:16 +0000 |
---|---|---|
committer | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-10 00:26:16 +0000 |
commit | 0f1388e5dac315f5f2057df49ba0ba1338bc3143 (patch) | |
tree | 4cf3579f42db02c6fd8a61b63a8e12118b278ae2 /ppapi/c/dev | |
parent | d111e93688a8531eb6f3f48592dfbcb88a9a4fee (diff) | |
download | chromium_src-0f1388e5dac315f5f2057df49ba0ba1338bc3143.zip chromium_src-0f1388e5dac315f5f2057df49ba0ba1338bc3143.tar.gz chromium_src-0f1388e5dac315f5f2057df49ba0ba1338bc3143.tar.bz2 |
<video> decode in hardware!
This uses the GpuVideoDecodeAccelerator machinery (already written to enable
ppapi to take advantage of OpenMAX HW where available) to decode <video> data.
This increases idle CPU from 20% to 45% on one particularly large (internal)
test video (red0.mp4), on an ARM crosbook.
HW decode is done on a best-effort basis; if the GPU code doesn't know how to
deal with a codec/profile we still fall back to ffmpeg for decode. Because the
vast majority of chrome installs will be on HW with no video decode support
(yet) we only attempt HW video decode on platforms we know have a shot at it.
BUG=104579
TEST=manual testing w/ video test matrix, trybots.
Review URL: http://codereview.chromium.org/8686010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113895 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/c/dev')
-rw-r--r-- | ppapi/c/dev/pp_video_dev.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/ppapi/c/dev/pp_video_dev.h b/ppapi/c/dev/pp_video_dev.h index c1bc999..2342d0e 100644 --- a/ppapi/c/dev/pp_video_dev.h +++ b/ppapi/c/dev/pp_video_dev.h @@ -3,7 +3,7 @@ * found in the LICENSE file. */ -/* From dev/pp_video_dev.idl modified Fri Nov 11 20:20:20 2011. */ +/* From dev/pp_video_dev.idl modified Wed Nov 23 13:51:18 2011. */ #ifndef PPAPI_C_DEV_PP_VIDEO_DEV_H_ #define PPAPI_C_DEV_PP_VIDEO_DEV_H_ @@ -15,8 +15,7 @@ /** * @file - * NOTE: these must be kept in sync with the versions in - * media/video/video_decode_accelerator.h! + * NOTE: these must be kept in sync with the versions in media/! */ @@ -30,8 +29,10 @@ * Keep the values in this enum unique, as they imply format (h.264 vs. VP8, * for example), and keep the values for a particular format grouped together * for clarity. + * Note: Keep these in sync with media::VideoCodecProfile. */ typedef enum { + PP_VIDEODECODER_PROFILE_UNKNOWN = -1, PP_VIDEODECODER_H264PROFILE_NONE = 0, PP_VIDEODECODER_H264PROFILE_BASELINE = 1, PP_VIDEODECODER_H264PROFILE_MAIN = 2, @@ -43,7 +44,8 @@ typedef enum { PP_VIDEODECODER_H264PROFILE_SCALABLEBASELINE = 8, PP_VIDEODECODER_H264PROFILE_SCALABLEHIGH = 9, PP_VIDEODECODER_H264PROFILE_STEREOHIGH = 10, - PP_VIDEODECODER_H264PROFILE_MULTIVIEWHIGH = 11 + PP_VIDEODECODER_H264PROFILE_MULTIVIEWHIGH = 11, + PP_VIDEODECODER_PROFILE_MAX = PP_VIDEODECODER_H264PROFILE_MULTIVIEWHIGH } PP_VideoDecoder_Profile; PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_VideoDecoder_Profile, 4); /** |