diff options
author | vrk@chromium.org <vrk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-06 03:23:58 +0000 |
---|---|---|
committer | vrk@chromium.org <vrk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-06 03:23:58 +0000 |
commit | 7ace8ad34d1f1d98b62da88ac6aaff1f33d8aaaa (patch) | |
tree | 4beeeef47d3ee8a731dcd56150c6938a99b9df78 /ppapi/proxy/ppb_buffer_proxy.h | |
parent | 10a57d167dd2836ddbd62e8786a12a344707ac73 (diff) | |
download | chromium_src-7ace8ad34d1f1d98b62da88ac6aaff1f33d8aaaa.zip chromium_src-7ace8ad34d1f1d98b62da88ac6aaff1f33d8aaaa.tar.gz chromium_src-7ace8ad34d1f1d98b62da88ac6aaff1f33d8aaaa.tar.bz2 |
Implement PPAPI VideoDecode out-of-process support
This CL implements the proxy necessary for out-of-process video decoding and
introduces a shared base class between the PPB_VideoDecoder_Impl and the proxy.
BUG=NONE
TEST=gles2 plugin runs with or without --ppapi-out-of-process flag, no crashes
Review URL: http://codereview.chromium.org/7545014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95724 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/proxy/ppb_buffer_proxy.h')
-rw-r--r-- | ppapi/proxy/ppb_buffer_proxy.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/ppapi/proxy/ppb_buffer_proxy.h b/ppapi/proxy/ppb_buffer_proxy.h index 6002950..e11b94f 100644 --- a/ppapi/proxy/ppb_buffer_proxy.h +++ b/ppapi/proxy/ppb_buffer_proxy.h @@ -8,6 +8,8 @@ #include "base/shared_memory.h" #include "ppapi/c/pp_instance.h" #include "ppapi/proxy/interface_proxy.h" +#include "ppapi/proxy/plugin_resource.h" +#include "ppapi/thunk/ppb_buffer_api.h" struct PPB_Buffer_Dev; @@ -16,6 +18,35 @@ namespace proxy { class HostResource; +class Buffer : public ppapi::thunk::PPB_Buffer_API, + public PluginResource { + public: + Buffer(const HostResource& resource, + const base::SharedMemoryHandle& shm_handle, + uint32_t size); + virtual ~Buffer(); + + // Resource overrides. + virtual Buffer* AsBuffer() OVERRIDE; + + // ResourceObjectBase overrides. + virtual ppapi::thunk::PPB_Buffer_API* AsPPB_Buffer_API() OVERRIDE; + + // PPB_Buffer_API implementation. + virtual PP_Bool Describe(uint32_t* size_in_bytes) OVERRIDE; + virtual PP_Bool IsMapped() OVERRIDE; + virtual void* Map() OVERRIDE; + virtual void Unmap() OVERRIDE; + + private: + base::SharedMemory shm_; + uint32_t size_; + void* mapped_data_; + int map_count_; + + DISALLOW_COPY_AND_ASSIGN(Buffer); +}; + class PPB_Buffer_Proxy : public InterfaceProxy { public: PPB_Buffer_Proxy(Dispatcher* dispatcher, const void* target_interface); |