Gst-vaapi issues
Arnaud Loonstra
arnaud at sphaero.org
Mon Nov 3 02:56:25 PST 2014
Hi all,
I'm trying out some vaapi pipelines:
My machine has:
$ vainfo
libva info: VA-API version 0.36.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_36
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.36 (libva 1.4.0)
vainfo: Driver version: Intel i965 driver for Intel(R) GM45 Express
Chipset - 1.4.0
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
So I'm trying a mpeg2 pipeline:
$ gst-launch-1.0 -v videotestsrc ! avenc_mpeg2video ! \
vaapidecode ! vaapisink
This works nice...
However it should be possible to use vaapi encoding. So I thought:
$ gst-launch-1.0 -v videotestsrc ! vaapiencode_mpeg2 ! \
vaapidecode ! vaapisink
Got context from element 'vaapidecode0': gst.vaapi.Display=context,
display=(GstVaapiDisplay)NULL;
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps =
"video/x-raw\,\ format\=\(string\)I420\,\ width\=\(int\)320\,\
height\=\(int\)240\,\ framerate\=\(fraction\)30/1\,\
interlace-mode\=\(string\)progressive\,\
pixel-aspect-ratio\=\(fraction\)1/1"
0:00:00.294025646 29680 0x1e4a140 ERROR vaapi
gstvaapiencoder.c:857:gst_vaapi_encoder_set_rate_control: unsupported
rate control mode (1)
0:00:00.294116930 29680 0x1e4a140 ERROR vaapi
gstvaapiencoder.c:857:gst_vaapi_encoder_set_rate_control: unsupported
rate control mode (1)
0:00:00.295280571 29680 0x1e4a140 ERROR vaapi
gstvaapiencoder.c:857:gst_vaapi_encoder_set_rate_control: unsupported
rate control mode (1)
0:00:00.295349994 29680 0x1e4a140 ERROR vaapi
gstvaapiencoder.c:857:gst_vaapi_encoder_set_rate_control: unsupported
rate control mode (1)
ERROR: from element
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0: Internal data flow
error.
Additional debug info:
gstbasesrc.c(2932): gst_base_src_loop ():
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0:
streaming task paused, reason not-negotiated (-4)
0:00:00.295463068 29680 0x1e4a140 ERROR vaapi
gstvaapiencoder.c:857:gst_vaapi_encoder_set_rate_control: unsupported
rate control mode (1)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
0:00:00.295545203 29680 0x1e4a140 ERROR vaapi
gstvaapiencoder.c:857:gst_vaapi_encoder_set_rate_control: unsupported
rate control mode (1)
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps =
"NULL"
Freeing pipeline ...
I cannot determine if my hardware supports it but I found the following
pipeline demonstrated by intel engineers
$ gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1800 ! \
video/x-raw,format= I420,width=640,height=480 ! vaapipostproc ! \
queue ! vaapiencode_mpeg2 ! mpegtsmux ! filesink location=test2.mpg
However this doesn't even want to link:
GST_PIPELINE ./grammar.y:616:gst_parse_perform_link: could not link
v4l2src0 to vaapipostproc0
I tried setting the rate-control property of vaapiencodempeg2 to no avail...
Could this just be the fact I don't have support for hardware encoding
or is something else wrong?
Rg,
Arnaud
More information about the gstreamer-devel
mailing list