Issue with gstreamer-vaapi
William Katsak
wkatsak at gmail.com
Tue Jan 26 12:51:37 PST 2016
Hello,
I'm seeing a weird issue with gstreamer-vaapi, and wanted to ask if
anyone else has seen it (let me know if I should post to the libva list
instead).
I have some benchmark pipelines that I have been running for quite a
while on Ubuntu 15.04 (Gstreamer 1.4ish) with no issues. One pipeline
uses vaapidecode/vaapiencode_h264 to do a transcode on the original "Big
Buck Bunny" movie (the first release, 1080p, 24fps version). On 15.04
and Gstreamer 1.4, this pipeline worked fine:
gst-launch-1.0 filesrc location=/ramdisk/bbb_original_1080p_24fps.mov !
qtdemux ! vaapidecode ! vaapiencode_h264 ! video/x-h264,profile=main !
h264parse ! qtmux ! filesink
location=/ramdisk/a28ea06e-c464-11e5-9085-989096d5f038.out
However, on a newly loaded 15.10 install (same hardware), I get an
error, the main message being:
ERROR: from element /GstPipeline:pipeline0/GstQTDemux:qtdemux0:
GStreamer encountered a general stream error.
Looking through the output of gst-launch -v, I see that the resolution
changes from 1920x1080 to 1920x1088 at some point in the negotiation.
Thinking this is weird, I run avprobe on the file, and notice this:
width=1920
height=1080
coded_width=1920
coded_height=1088
Thinking that there is some weird resolution mismatch here, I add a
vaapipostproc width=1920 height=1080 to the pipeline, and it runs fine.
What could be going on here? Why would it work before, and not now? Is
this an issue with the movie itself, or a regression somewhere in the
software stack?
Any advice would be appreciated.
Thanks in advance,
-Bill Katsak
FULL OUTPUT OF gst-launch -v BELOW
-------------------------------------------------------------------------
libva info: VA-API version 0.38.1
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_38
libva info: va_openDriver() returns 0
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got context from element 'vaapidecode0': gst.vaapi.Display=context,
display=(GstVaapiDisplay)NULL;
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps =
"video/x-h264\,\ stream-format\=\(string\)avc\,\
alignment\=\(string\)au\,\ level\=\(string\)4.1\,\
profile\=\(string\)main\,\
codec_data\=\(buffer\)014d4029ffe10016274d4029a9180f0044fcb8035010101b6c2b5ef7c04001000428de09c8\,\
max-input-size\=\(int\)511608\,\ width\=\(int\)1920\,\
height\=\(int\)1080\,\ framerate\=\(fraction\)625/26\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\ parsed\=\(boolean\)true"
/GstPipeline:pipeline0/GstVaapiDecode:vaapidecode0.GstPad:sink: caps =
"video/x-h264\,\ stream-format\=\(string\)avc\,\
alignment\=\(string\)au\,\ level\=\(string\)4.1\,\
profile\=\(string\)main\,\
codec_data\=\(buffer\)014d4029ffe10016274d4029a9180f0044fcb8035010101b6c2b5ef7c04001000428de09c8\,\
max-input-size\=\(int\)511608\,\ width\=\(int\)1920\,\
height\=\(int\)1080\,\ framerate\=\(fraction\)625/26\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\ parsed\=\(boolean\)true"
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps =
"video/x-h264\,\ stream-format\=\(string\)avc\,\
alignment\=\(string\)au\,\ level\=\(string\)4.1\,\
profile\=\(string\)main\,\
codec_data\=\(buffer\)014d4029ffe10016274d4029a9180f0044fcb8035010101b6c2b5ef7c04001000428de09c8\,\
max-input-size\=\(int\)511608\,\ width\=\(int\)1920\,\
height\=\(int\)1080\,\ framerate\=\(fraction\)625/26\,\
pixel-aspect-ratio\=\(fraction\)1/1"
Redistribute latency...
/GstPipeline:pipeline0/GstVaapiDecode:vaapidecode0.GstPad:src: caps =
"video/x-raw\,\ format\=\(string\)I420\,\ width\=\(int\)1920\,\
height\=\(int\)1080\,\ interlace-mode\=\(string\)progressive\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\ chroma-site\=\(string\)mpeg2\,\
colorimetry\=\(string\)bt709\,\ framerate\=\(fraction\)625/26"
/GstPipeline:pipeline0/GstVaapiEncodeH264:vaapiencodeh264-0.GstPad:sink:
caps = "video/x-raw\,\ format\=\(string\)I420\,\ width\=\(int\)1920\,\
height\=\(int\)1080\,\ interlace-mode\=\(string\)progressive\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\ chroma-site\=\(string\)mpeg2\,\
colorimetry\=\(string\)bt709\,\ framerate\=\(fraction\)625/26"
Redistribute latency...
/GstPipeline:pipeline0/GstVaapiDecode:vaapidecode0.GstPad:src: caps =
"video/x-raw\,\ format\=\(string\)I420\,\ width\=\(int\)1920\,\
height\=\(int\)1088\,\ interlace-mode\=\(string\)progressive\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\ chroma-site\=\(string\)mpeg2\,\
colorimetry\=\(string\)bt709\,\ framerate\=\(fraction\)625/26"
ERROR: from element /GstPipeline:pipeline0/GstQTDemux:qtdemux0:
GStreamer encountered a general stream error.
Additional debug info:
qtdemux.c(5306): gst_qtdemux_loop ():
/GstPipeline:pipeline0/GstQTDemux:qtdemux0:
streaming stopped, reason not-negotiated
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
/GstPipeline:pipeline0/GstVaapiEncodeH264:vaapiencodeh264-0.GstPad:sink:
caps = "NULL"
/GstPipeline:pipeline0/GstVaapiDecode:vaapidecode0.GstPad:src: caps = "NULL"
/GstPipeline:pipeline0/GstVaapiDecode:vaapidecode0.GstPad:sink: caps =
"NULL"
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = "NULL"
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = "NULL"
/GstPipeline:pipeline0/GstQTDemux:qtdemux0.GstPad:video_0: caps = "NULL"
Freeing pipeline ..
More information about the gstreamer-devel
mailing list