diff options
author | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-29 17:47:01 +0000 |
---|---|---|
committer | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-29 17:47:01 +0000 |
commit | 890e8966414165e59418b7886778cbd16cc194ac (patch) | |
tree | 3e0de593dd21b86879bd09d228a090f8af105564 /content/renderer/pepper_plugin_delegate_impl.h | |
parent | 32fcb896c5d34a483c3adbdec90badbddd54d7d8 (diff) | |
download | chromium_src-890e8966414165e59418b7886778cbd16cc194ac.zip chromium_src-890e8966414165e59418b7886778cbd16cc194ac.tar.gz chromium_src-890e8966414165e59418b7886778cbd16cc194ac.tar.bz2 |
Implement proper synchronization between HW video decode IPC and CommandBuffer.
This is done by inserting tokens into the command-buffer stream
when synchronization is needed, and adding a
last-read/last-written token pair to each IPC message. This
allowed me to remove the bogus FinishGL() calls from the gles2
sample pepper plugin.
As part of this CL, the return value for VideoDecodeAccelerator::{Decode,Flush,Abort} changed from bool to void. These are all async methods so errors ought to be signaled using callbacks.
BUG=none
TEST=gles2 works, no crashes; trybots
Review URL: http://codereview.chromium.org/7260008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90971 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/pepper_plugin_delegate_impl.h')
-rw-r--r-- | content/renderer/pepper_plugin_delegate_impl.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/content/renderer/pepper_plugin_delegate_impl.h b/content/renderer/pepper_plugin_delegate_impl.h index 2c7bf47..e920c46 100644 --- a/content/renderer/pepper_plugin_delegate_impl.h +++ b/content/renderer/pepper_plugin_delegate_impl.h @@ -29,6 +29,10 @@ class Point; class Rect; } +namespace gpu { +class CommandBufferHelper; +} + namespace IPC { struct ChannelHandle; } @@ -180,7 +184,8 @@ class PepperPluginDelegateImpl virtual PlatformContext3D* CreateContext3D(); virtual PlatformVideoDecoder* CreateVideoDecoder( media::VideoDecodeAccelerator::Client* client, - int command_buffer_route_id); + int32 command_buffer_route_id, + gpu::CommandBufferHelper* cmd_buffer_helper); virtual PpapiBroker* ConnectToPpapiBroker( webkit::ppapi::PPB_Broker_Impl* client); virtual void NumberOfFindResultsChanged(int identifier, |