[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