summaryrefslogtreecommitdiffstats
path: root/ppapi/c
diff options
context:
space:
mode:
authorsail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-08 19:39:45 +0000
committersail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-08 19:39:45 +0000
commit08bab53f31485b4644a6a318fa5eb606c667ec1b (patch)
treed2e863aaa1a3e133885ae0c5d303a6ec92708c9a /ppapi/c
parent5b31fe43ab3afe06483b34286f856c9ca07639fb (diff)
downloadchromium_src-08bab53f31485b4644a6a318fa5eb606c667ec1b.zip
chromium_src-08bab53f31485b4644a6a318fa5eb606c667ec1b.tar.gz
chromium_src-08bab53f31485b4644a6a318fa5eb606c667ec1b.tar.bz2
Plumb texture target to VideoDecodeAccelerator::Client
Currently all VideoDecodeAccelerator::Clients use GL_TEXTURE_2D as their texture target. Unfortunately the Mac decoder only supports GL_TEXTURE_RECTANGLE_ARB texture targets. This CL allows decoders to choose which texture target they want. BUG=127414 TEST= Review URL: https://chromiumcodereview.appspot.com/10392141 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141258 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/c')
-rw-r--r--ppapi/c/dev/ppp_video_decoder_dev.h29
1 files changed, 24 insertions, 5 deletions
diff --git a/ppapi/c/dev/ppp_video_decoder_dev.h b/ppapi/c/dev/ppp_video_decoder_dev.h
index a06b582..20c4e8c 100644
--- a/ppapi/c/dev/ppp_video_decoder_dev.h
+++ b/ppapi/c/dev/ppp_video_decoder_dev.h
@@ -3,7 +3,7 @@
* found in the LICENSE file.
*/
-/* From dev/ppp_video_decoder_dev.idl modified Wed Jan 11 14:58:58 2012. */
+/* From dev/ppp_video_decoder_dev.idl modified Tue May 29 10:59:23 2012. */
#ifndef PPAPI_C_DEV_PPP_VIDEO_DECODER_DEV_H_
#define PPAPI_C_DEV_PPP_VIDEO_DECODER_DEV_H_
@@ -17,7 +17,8 @@
#define PPP_VIDEODECODER_DEV_INTERFACE_0_9 "PPP_VideoDecoder(Dev);0.9"
#define PPP_VIDEODECODER_DEV_INTERFACE_0_10 "PPP_VideoDecoder(Dev);0.10"
-#define PPP_VIDEODECODER_DEV_INTERFACE PPP_VIDEODECODER_DEV_INTERFACE_0_10
+#define PPP_VIDEODECODER_DEV_INTERFACE_0_11 "PPP_VideoDecoder(Dev);0.11"
+#define PPP_VIDEODECODER_DEV_INTERFACE PPP_VIDEODECODER_DEV_INTERFACE_0_11
/**
* @file
@@ -36,7 +37,7 @@
*
* See PPB_VideoDecoder_Dev for general usage tips.
*/
-struct PPP_VideoDecoder_Dev_0_10 {
+struct PPP_VideoDecoder_Dev_0_11 {
/**
* Callback function to provide buffers for the decoded output pictures. If
* succeeds plugin must provide buffers through AssignPictureBuffers function
@@ -50,11 +51,13 @@ struct PPP_VideoDecoder_Dev_0_10 {
* |decoder| the PPB_VideoDecoder_Dev resource.
* |req_num_of_bufs| tells how many buffers are needed by the decoder.
* |dimensions| tells the dimensions of the buffer to allocate.
+ * |texture_target| the type of texture used.
*/
void (*ProvidePictureBuffers)(PP_Instance instance,
PP_Resource decoder,
uint32_t req_num_of_bufs,
- const struct PP_Size* dimensions);
+ const struct PP_Size* dimensions,
+ uint32_t texture_target);
/**
* Callback function for decoder to deliver unneeded picture buffers back to
* the plugin.
@@ -94,7 +97,7 @@ struct PPP_VideoDecoder_Dev_0_10 {
PP_VideoDecodeError_Dev error);
};
-typedef struct PPP_VideoDecoder_Dev_0_10 PPP_VideoDecoder_Dev;
+typedef struct PPP_VideoDecoder_Dev_0_11 PPP_VideoDecoder_Dev;
struct PPP_VideoDecoder_Dev_0_9 {
void (*ProvidePictureBuffers)(PP_Instance instance,
@@ -112,6 +115,22 @@ struct PPP_VideoDecoder_Dev_0_9 {
PP_Resource decoder,
PP_VideoDecodeError_Dev error);
};
+
+struct PPP_VideoDecoder_Dev_0_10 {
+ void (*ProvidePictureBuffers)(PP_Instance instance,
+ PP_Resource decoder,
+ uint32_t req_num_of_bufs,
+ const struct PP_Size* dimensions);
+ void (*DismissPictureBuffer)(PP_Instance instance,
+ PP_Resource decoder,
+ int32_t picture_buffer_id);
+ void (*PictureReady)(PP_Instance instance,
+ PP_Resource decoder,
+ const struct PP_Picture_Dev* picture);
+ void (*NotifyError)(PP_Instance instance,
+ PP_Resource decoder,
+ PP_VideoDecodeError_Dev error);
+};
/**
* @}
*/