summaryrefslogtreecommitdiffstats
path: root/webkit/media/webmediaplayer_impl.cc
diff options
context:
space:
mode:
authorfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-10 00:26:16 +0000
committerfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-10 00:26:16 +0000
commit0f1388e5dac315f5f2057df49ba0ba1338bc3143 (patch)
tree4cf3579f42db02c6fd8a61b63a8e12118b278ae2 /webkit/media/webmediaplayer_impl.cc
parentd111e93688a8531eb6f3f48592dfbcb88a9a4fee (diff)
downloadchromium_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 'webkit/media/webmediaplayer_impl.cc')
-rw-r--r--webkit/media/webmediaplayer_impl.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/webkit/media/webmediaplayer_impl.cc b/webkit/media/webmediaplayer_impl.cc
index a246945..a4eb991 100644
--- a/webkit/media/webmediaplayer_impl.cc
+++ b/webkit/media/webmediaplayer_impl.cc
@@ -700,6 +700,8 @@ void WebMediaPlayerImpl::putCurrentFrame(
WebVideoFrameImpl::toVideoFrame(web_video_frame));
proxy_->PutCurrentFrame(video_frame);
delete web_video_frame;
+ } else {
+ proxy_->PutCurrentFrame(NULL);
}
}