summaryrefslogtreecommitdiff
path: root/src/xvmc/intel_xvmc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xvmc/intel_xvmc.c')
-rw-r--r--src/xvmc/intel_xvmc.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/xvmc/intel_xvmc.c b/src/xvmc/intel_xvmc.c
index 9b80eb4c..0b6e5a31 100644
--- a/src/xvmc/intel_xvmc.c
+++ b/src/xvmc/intel_xvmc.c
@@ -366,6 +366,8 @@ Status XvMCDestroyContext(Display *display, XvMCContext *context)
Status XvMCCreateSurface(Display *display, XvMCContext *context, XvMCSurface *surface)
{
Status ret;
+ int priv_count;
+ CARD32 *priv_data;
if (!display || !context)
return XvMCBadContext;
@@ -373,7 +375,14 @@ Status XvMCCreateSurface(Display *display, XvMCContext *context, XvMCSurface *su
if (!surface)
return XvMCBadSurface;
- ret = (xvmc_driver->create_surface)(display, context, surface);
+ if ((ret = _xvmc_create_surface(display, context, surface,
+ &priv_count, &priv_data))) {
+ XVMC_ERR("Unable to create XvMCSurface.");
+ return ret;
+ }
+
+ ret = (xvmc_driver->create_surface)(display, context, surface, priv_count,
+ priv_data);
if (ret) {
XVMC_ERR("create surface failed\n");
return ret;
@@ -393,6 +402,8 @@ Status XvMCDestroySurface(Display *display, XvMCSurface *surface)
(xvmc_driver->destroy_surface)(display, surface);
+ _xvmc_destroy_surface(display, surface);
+
return Success;
}