[Libva] segmentation fault with vainfo

Achim Hofmann news at achim-hofmann.com
Thu Apr 28 12:24:22 PDT 2011


On Mon, 18 Apr 2011 13:09:06 +0200 (CEST), Gwenole Beauchesne wrote:

> On Thu, 14 Apr 2011, Achim Hofmann wrote:
> 
>> libva: libva version 0.32.0-sds2
>> Xlib:  extension "XFree86-DRI" missing on display ":0.0".
>> libva: va_getDriverName() returns 0
>> Segmentation fault
> 
> There is a bug in va.c whereby a NULL driver_name would cause the
> function to crash, thus the application too. That's a sure thing that
> can be fixed, someone sent me a patch. However, there is another
> problem, possibly related to the driver detection code but I never could
> reproduce it.

I found the function within va.c which tries to obtain the driver_name:

static VAStatus va_getDriverName(VADisplay dpy, char **driver_name)
{
  VADisplayContextP pDisplayContext = (VADisplayContextP)dpy;
  return pDisplayContext->vaGetDriverName(pDisplayContext, driver_name);
}

And I also found the declaration of VADisplayContext within va_backend.h:

struct VADisplayContext
{
  int vadpy_magic;
  VADisplayContextP pNext;
  VADriverContextP pDriverContext;
  int (*vaIsValid) (
    VADisplayContextP ctx
  );
  void (*vaDestroy) (
    VADisplayContextP ctx
  );
  VAStatus (*vaGetDriverName) (
    VADisplayContextP ctx,
    char **driver_name
  );
  void *opaque; /* opaque for display extensions (e.g. GLX) */
};

There's a pointer to a function called vaGetDriverName, but where is the
definition for this function?

Regards,
Achim Hofmann

PS: Regarding to my question for an IDE, I decided for Code::Blocks now.


More information about the Libva mailing list