[Libva] [PATCH] xvba-va-driver: call XDisplayClose in vaTerminate

Rinat Ibragimov ibragimovrinat at mail.ru
Fri Jun 28 07:07:40 PDT 2013


Ping.

Пятница, 19 апреля 2013, 16:04 +04:00 от Rinat Ibragimov <ibragimovrinat at mail.ru>:
> Hi.
> 
> Don't know where to report xvba-va-driver issue I faced. Hope it's ok
> to do it here.
> 
> With xvba-va-driver the following code fails to do all 1000 iterations.
> Inside vaInitialize xvba-va-driver opens connection to X server with
> XOpenDisplay, but never closes it. So after around 200 iterations
> vaInitialize returns an error.
> 
> === cut 1 ===
> 
> #include <va/va.h>
> #include <va/va_x11.h>
> #include <va/va_glx.h>
> #include <assert.h>
> #include <stdio.h>
> 
> int main(void)
> {
>         int vmajor, vminor;
>         Display *dpy;
>         VADisplay va_dpy;
>         dpy = XOpenDisplay(NULL);
>         assert(dpy);
> 
>         for (int k = 0; k < 1000; k ++) {
>                 printf("k = %d\n", k);
>                 va_dpy = vaGetDisplay(dpy);
>                 VAStatus status = vaInitialize(va_dpy, &vmajor, &vminor);
>                 if (VA_STATUS_SUCCESS != status)
>                         return 1;
>                 vaTerminate(va_dpy);
>         }
> 
>         XCloseDisplay(dpy);
> }
> 
> === cut 1 ===
> 
> 
> This patch solves problem for me.
> 
> === cut 2 ===
> 
> diff -ur xvba-video-0.8.0/src/xvba_driver.c xvba-video-0.8.0-n/src/xvba_driver.c
> --- xvba-video-0.8.0/src/xvba_driver.c	2011-06-14 15:07:13.000000000 +0400
> +++ xvba-video-0.8.0-n/src/xvba_driver.c	2013-04-19 15:28:00.000000000 +0400
> @@ -125,6 +125,8 @@
>      }
>  
>      xvba_gate_exit();
> +    if (driver_data->x11_dpy_local)
> +        XCloseDisplay(driver_data->x11_dpy_local);
>  }
>  
>  // vaInitialize
> 
> 
> === cut 2 ===
> 
> 
> ---
> Rinat
> _______________________________________________
> Libva mailing list
> Libva at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/libva
> 


---
Ринат Ибрагимов


More information about the Libva mailing list