diff options
Diffstat (limited to 'src/xvmc/intel_xvmc.c')
-rw-r--r-- | src/xvmc/intel_xvmc.c | 13 |
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; } |