1.8 RC2 vaapi failure?

Perry Hung perry at leaflabs.com
Tue Mar 22 01:05:53 UTC 2016


I recently upgraded to try out the new release candidate and now my
VAAPI decode pipelines are failing.

It appears the decoder is failing to decode a frame and then bailing
forever? Did I get the pipeline elements wrong? It appears
vaapiparse_h264 has disappeared between 1.6.3 and 1.8.

I'm pushing H264 over RTP and receiving/decoding it using VAAPI/vdpau:

This receiver pipeline works:

gst-launch-1.0 -v -e udpsrc port=6001 buffer-size=212992 !
"application/x-rtp, payload=96" ! rtph264depay ! h264parse !
avdec_h264 ! xvimagesink

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps =
"application/x-rtp\,\ payload\=\(int\)96\,\ media\=\(string\)video\,\
clock-rate\=\(int\)90000\,\ encoding-name\=\(string\)H264"
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps
= "application/x-rtp\,\ payload\=\(int\)96\,\
media\=\(string\)video\,\ clock-rate\=\(int\)90000\,\
encoding-name\=\(string\)H264"
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps
= "video/x-h264\,\ stream-format\=\(string\)avc\,\
alignment\=\(string\)au\,\
codec_data\=\(buffer\)0142c01effe100166742c01e95a0280f68400000fa00003a9823c70ba80001000568ce3c8000\,\
level\=\(string\)3\,\ profile\=\(string\)constrained-baseline"
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps =
"video/x-h264\,\ stream-format\=\(string\)avc\,\
alignment\=\(string\)au\,\
codec_data\=\(buffer\)0142c01effe100166742c01e95a0280f68400000fa00003a9823c70ba80001000568ce3c8000\,\
level\=\(string\)3\,\ profile\=\(string\)constrained-baseline\,\
width\=\(int\)640\,\ height\=\(int\)480\,\
framerate\=\(fraction\)30/1\,\ parsed\=\(boolean\)true"
/GstPipeline:pipeline0/avdec_h264:avdec_h264-0.GstPad:sink: caps =
"video/x-h264\,\ stream-format\=\(string\)avc\,\
alignment\=\(string\)au\,\
codec_data\=\(buffer\)0142c01effe100166742c01e95a0280f68400000fa00003a9823c70ba80001000568ce3c8000\,\
level\=\(string\)3\,\ profile\=\(string\)constrained-baseline\,\
width\=\(int\)640\,\ height\=\(int\)480\,\
framerate\=\(fraction\)30/1\,\ parsed\=\(boolean\)true"
Redistribute latency...
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps =
"video/x-h264\,\ stream-format\=\(string\)avc\,\
alignment\=\(string\)au\,\
codec_data\=\(buffer\)0142c01effe100166742c01e95a0280f68400000fa00003a9823c70ba80001000568ce3c8000\,\
level\=\(string\)3\,\ profile\=\(string\)constrained-baseline"
/GstPipeline:pipeline0/avdec_h264:avdec_h264-0.GstPad:src: caps =
"video/x-raw\,\ format\=\(string\)I420\,\ width\=\(int\)640\,\
height\=\(int\)480\,\ interlace-mode\=\(string\)progressive\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\ chroma-site\=\(string\)mpeg2\,\
colorimetry\=\(string\)bt601\,\ framerate\=\(fraction\)30/1"
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0.GstPad:sink: caps =
"video/x-raw\,\ format\=\(string\)I420\,\ width\=\(int\)640\,\
height\=\(int\)480\,\ interlace-mode\=\(string\)progressive\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\ chroma-site\=\(string\)mpeg2\,\
colorimetry\=\(string\)bt601\,\ framerate\=\(fraction\)30/1"


This fails:
gst-launch-1.0 -v -e udpsrc port=6001 buffer-size=212992 !
"application/x-rtp, payload=96" ! rtph264depay ! vaapidecode !
vaapisink

libva info: VA-API version 0.38.1
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/nvidia_drv_video.so
libva info: Found init function __vaDriverInit_0_35
libva info: va_openDriver() returns 0
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Got context from element 'pipeline0': gst.vaapi.Display=context,
gst.vaapi.Display=(GstVaapiDisplay)NULL;
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps =
"application/x-rtp\,\ payload\=\(int\)96\,\ media\=\(string\)video\,\
clock-rate\=\(int\)90000\,\ encoding-name\=\(string\)H264"
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps
= "application/x-rtp\,\ payload\=\(int\)96\,\
media\=\(string\)video\,\ clock-rate\=\(int\)90000\,\
encoding-name\=\(string\)H264"
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps
= "video/x-h264\,\ stream-format\=\(string\)avc\,\
alignment\=\(string\)au\,\
codec_data\=\(buffer\)0142c01effe100166742c01e95a0280f68400000fa00003a9823c70ba80001000568ce3c8000\,\
level\=\(string\)3\,\ profile\=\(string\)constrained-baseline"
ERROR: from element /GstPipeline:pipeline0/GstUDPSrc:udpsrc0: Internal
data flow error.
Additional debug info:
gstbasesrc.c(2948): void gst_base_src_loop(GstPad *) ():
/GstPipeline:pipeline0/GstUDPSrc:udpsrc0:
streaming task paused, reason not-negotiated (-4)
EOS on shutdown enabled -- waiting for EOS after Error
Waiting for EOS...


More information about the gstreamer-devel mailing list