summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy/ppb_buffer_proxy.h
diff options
context:
space:
mode:
authorvrk@chromium.org <vrk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-06 03:23:58 +0000
committervrk@chromium.org <vrk@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-06 03:23:58 +0000
commit7ace8ad34d1f1d98b62da88ac6aaff1f33d8aaaa (patch)
tree4beeeef47d3ee8a731dcd56150c6938a99b9df78 /ppapi/proxy/ppb_buffer_proxy.h
parent10a57d167dd2836ddbd62e8786a12a344707ac73 (diff)
downloadchromium_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.h31
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);