[Libva] Running libva applications without X

Jonathan Haws Jonathan.Haws at sdl.usu.edu
Fri Apr 12 16:05:06 PDT 2013


I am new to the video compression world, so I apologize if any of this is trivial or if there are better ways than what I am thinking, but I appreciate any help that anyone can provide.  :)

I just want to decode H.264 encoded feeds in order to extract still images from the video.

For example, if I have a system that is feeding me an H.264 encoded stream, I would like to decode it and keep the most current frame in a buffer and allow someone connected to my system remotely to pull that still.  Eventually, I will do a similar thing and accept analog inputs, only I will hold the frame and also encode the video into a H.264 stream for storage.

That said, I am developing an application that is designed to accept H.264 encoded video streams.  This is meant to run on a headless system and simply perform decoding of the stream.

When I try to run the hwdecode demos (from https://gitorious.org/hwdecode-demos) I get an X11 error because x11_init() fails (which I expect since I don't have X configured).  As I read in va.h, I see this:

/*
 * Initialization:
 * A display must be obtained by calling vaGetDisplay() before calling
 * vaInitialize() and other functions. This connects the API to the 
 * native window system.
 * For X Windows, native_dpy would be from XOpenDisplay()
 */

However, I don't have X setup or configured since I don't need it or want it.  Is there a way around this?  Is there a way I can get X configured solely to provide me with this?  Can I simply pass a NULL pointer to this (I would doubt it)? I don't want to do any sort of displaying of the video - just decoding.

Are there better ways to do this?  Am I on the right track?  How can I get my headless system ready to use VAAPI without a full blown window manager?

Thanks!
Jonathan

FYI - I am running on an Ivy Bridge system with Fedora 18 and the following installed:

libva.x86_64 (1.1.0-5)
libva-devel.x86_64 (1.1.0-5)
libva-utils.x86_64 (1.1.0-5)
libva-intel-driver.x86_64 (1.0.20-1)
xorg-x11-drv-intel.x86_64 (2.21.5-1)
xorg-x11-proto-devel.noarch (7.6-24)
xorg-x11-server-Xorg.x86_64 (1.13.3-2)
xorg-x11-server-common.x86_64 (1.13.3-2)
xorg-x11-server-devel.x86_64 (1.13.3-2)
xorg-x11-util-macros.noarch (1.17-2)
xorg-x11-xkb-utils.x86_64 (7.7-5)
mesa-dri-drivers.x86_64 (9.1-3)
mesa-dri-filesystem.x86_64 (9.1-3)
mesa-libEGL.x86_64 (9.1-3)
mesa-libGL.x86_64 (9.1-3)
mesa-libGL-devel.x86_64 (9.1-3)
mesa-libGLU.x86_64 (9.0.0-1)
mesa-libgbm.x86_64 (9.1-3)
mesa-libglapi.x86_64 (9.1-3)


More information about the Libva mailing list