summaryrefslogtreecommitdiff
path: root/va/va_fool.c
diff options
context:
space:
mode:
Diffstat (limited to 'va/va_fool.c')
-rw-r--r--va/va_fool.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/va/va_fool.c b/va/va_fool.c
index 95d1880..9f7a045 100644
--- a/va/va_fool.c
+++ b/va/va_fool.c
@@ -252,8 +252,14 @@ VAStatus va_FoolBufferInfo(
unsigned int *num_elements /* out */
)
{
+ unsigned int magic;
+
DPY2FOOLCTX_CHK(dpy);
+ magic = buf_id & FOOL_BUFID_MASK;
+ if (magic != FOOL_BUFID_MAGIC)
+ return 0; /* could be VAImageBufferType from vaDeriveImage */
+
*type = buf_id & 0xff;
*size = fool_ctx->fool_buf_size[*type];
*num_elements = fool_ctx->fool_buf_element[*type];;
@@ -342,9 +348,13 @@ VAStatus va_FoolMapBuffer(
void **pbuf /* out */
)
{
- unsigned int buftype;
+ unsigned int magic, buftype;
DPY2FOOLCTX_CHK(dpy);
+ magic = buf_id & FOOL_BUFID_MASK;
+ if (magic != FOOL_BUFID_MAGIC)
+ return 0; /* could be VAImageBufferType from vaDeriveImage */
+
buftype = buf_id & 0xff;
*pbuf = fool_ctx->fool_buf[buftype];