I'm trying to use xvba in a simple vaapi gstreamer pipeline on my system:
Code:
gst-launch-0.10 -v filesrc location=sintel_trailer-720p.mp4 ! queue ! qtdemux ! queue ! vaapidecode ! vaapisink
No matter what I try, it gives me a black screen and crashes afterwards (output with XVBA_VIDEO_DEBUG=1 at the end of this post):
Code:
$ gst-launch-0.10 -v filesrc location=Downloads/sintel_trailer-720p.mp4 ! queue ! qtdemux ! queue ! vaapidecode ! vaapisink
Setting pipeline to PAUSED ...
libva: VA-API version 0.32.0
Xlib: extension "XFree86-DRI" missing on display ":0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/dri/fglrx_drv_video.so
libva: va_openDriver() returns 0
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)3.1, profile=(string)high, codec_data=(buffer)0164001fffe100196764001fac34e6014016e840000003004000000c03c60c668001000668e9784cb22c, width=(int)1280, height=(int)720, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstQueue:queue1.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)3.1, profile=(string)high, codec_data=(buffer)0164001fffe100196764001fac34e6014016e840000003004000000c03c60c668001000668e9784cb22c, width=(int)1280, height=(int)720, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstVaapiDecode:vaapidecode0.GstPad:src: caps = video/x-surface, width=(int)1280, height=(int)720, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, type=(string)vaapi, opengl=(boolean)false
/GstPipeline:pipeline0/GstVaapiDecode:vaapidecode0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)3.1, profile=(string)high, codec_data=(buffer)0164001fffe100196764001fac34e6014016e840000003004000000c03c60c668001000668e9784cb22c, width=(int)1280, height=(int)720, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstVaapiSink:vaapisink0.GstPad:sink: caps = video/x-surface, width=(int)1280, height=(int)720, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, type=(string)vaapi, opengl=(boolean)false
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
gst-launch-0.10: xvba_decode.c:614: xvba_BeginPicture: Assertion `!obj_context->va_buffers_count' failed.
Aborted (core dumped)
When trying out the 1080p sintel trailer I get the same crash and the well known:
Code:
xvba_video: driver does not support H.264 content over HP@L4.1.
Any reason why it would crash on the 720p sintel trailer?
System info:
ubuntu 12.04 (daily) with fglrx-updates, gstreamer0.10-vaapi, xvba-va-video (0.78, tried with 0.80 and same result) packages
Code:
$ fglrxinfo
display: :0 screen: 0
OpenGL vendor string: Advanced Micro Devices, Inc.
OpenGL renderer string: ATI Radeon HD 5570
OpenGL version string: 4.2.11627 Compatibility Profile Context
$ vainfo
libva: VA-API version 0.32.0
Xlib: extension "XFree86-DRI" missing on display ":0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/dri/fglrx_drv_video.so
libva: va_openDriver() returns 0
vainfo: VA-API version: 0.32 (libva 1.0.15)
vainfo: Driver version: Splitted-Desktop Systems XvBA backend for VA-API - 0.7.8
vainfo: Supported profile and entrypoints
VAProfileH264High : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
Crash output with XVBA_VIDEO_DEBUG=1:
Code:
$ XVBA_VIDEO_DEBUG=1 gst-launch-0.10 -v filesrc location=Downloads/sintel_trailer-720p.mp4 ! queue ! qtdemux ! queue ! vaapidecode ! vaapisink
Setting pipeline to PAUSED ...
libva: VA-API version 0.32.0
Xlib: extension "XFree86-DRI" missing on display ":0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/dri/fglrx_drv_video.so
xvba_video: FGLRX driver version 8.96.4 detected
xvba_video: FGLRX device ID 0x68d9
xvba_video: Evergreen GPU detected
xvba_video: XvBA version 0.76 detected
libva: va_openDriver() returns 0
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)3.1, profile=(string)high, codec_data=(buffer)0164001fffe100196764001fac34e6014016e840000003004000000c03c60c668001000668e9784cb22c, width=(int)1280, height=(int)720, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstQueue:queue1.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)3.1, profile=(string)high, codec_data=(buffer)0164001fffe100196764001fac34e6014016e840000003004000000c03c60c668001000668e9784cb22c, width=(int)1280, height=(int)720, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstVaapiDecode:vaapidecode0.GstPad:src: caps = video/x-surface, width=(int)1280, height=(int)720, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, type=(string)vaapi, opengl=(boolean)false
/GstPipeline:pipeline0/GstVaapiDecode:vaapidecode0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)3.1, profile=(string)high, codec_data=(buffer)0164001fffe100196764001fac34e6014016e840000003004000000c03c60c668001000668e9784cb22c, width=(int)1280, height=(int)720, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x03000000
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x03000001
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x03000002
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x03000003
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x03000004
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x03000005
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x03000006
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x03000007
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x03000008
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x03000009
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x0300000a
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x0300000b
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x0300000c
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x0300000d
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x0300000e
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x0300000f
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x03000010
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x03000011
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x03000012
xvba_video: vaCreateSurfaces(): size 1280x720, format YUV420
xvba_video: surface 0x03000013
xvba_video: vaCreateContext(): config 0x01000000, size 1280x720
xvba_video: surface 0x03000000
xvba_video: surface 0x03000001
xvba_video: surface 0x03000002
xvba_video: surface 0x03000003
xvba_video: surface 0x03000004
xvba_video: surface 0x03000005
xvba_video: surface 0x03000006
xvba_video: surface 0x03000007
xvba_video: surface 0x03000008
xvba_video: surface 0x03000009
xvba_video: surface 0x0300000a
xvba_video: surface 0x0300000b
xvba_video: surface 0x0300000c
xvba_video: surface 0x0300000d
xvba_video: surface 0x0300000e
xvba_video: surface 0x0300000f
xvba_video: surface 0x03000010
xvba_video: surface 0x03000011
xvba_video: surface 0x03000012
xvba_video: surface 0x03000013
xvba_video: context 0x02000000
xvba_video: vaBeginPicture(): context 0x02000000, surface 0x03000000
xvba_video: vaRenderPicture(): context 0x02000000, 2 buffers
xvba_video: buffer 0x04000002
xvba_video: buffer 0x04000003
xvba_video: vaRenderPicture(): context 0x02000000, 2 buffers
xvba_video: buffer 0x04000001
xvba_video: buffer 0x04000000
xvba_video: vaEndPicture(): context 0x02000000
xvba_video: vaBeginPicture(): context 0x02000000, surface 0x03000001
xvba_video: vaRenderPicture(): context 0x02000000, 2 buffers
xvba_video: buffer 0x04000000
xvba_video: buffer 0x04000001
xvba_video: vaRenderPicture(): context 0x02000000, 2 buffers
xvba_video: buffer 0x04000005
xvba_video: buffer 0x04000004
xvba_video: vaEndPicture(): context 0x02000000
xvba_video: vaBeginPicture(): context 0x02000000, surface 0x03000002
xvba_video: vaRenderPicture(): context 0x02000000, 2 buffers
xvba_video: buffer 0x04000004
xvba_video: buffer 0x04000005
xvba_video: vaRenderPicture(): context 0x02000000, 2 buffers
xvba_video: buffer 0x04000002
xvba_video: buffer 0x04000003
xvba_video: vaEndPicture(): context 0x02000000
xvba_video: vaBeginPicture(): context 0x02000000, surface 0x03000003
xvba_video: vaRenderPicture(): context 0x02000000, 2 buffers
xvba_video: buffer 0x04000003
xvba_video: buffer 0x04000002
xvba_video: vaRenderPicture(): context 0x02000000, 2 buffers
xvba_video: buffer 0x04000000
xvba_video: buffer 0x04000001
xvba_video: vaEndPicture(): context 0x02000000
xvba_video: vaBeginPicture(): context 0x02000000, surface 0x03000004
xvba_video: vaRenderPicture(): context 0x02000000, 2 buffers
xvba_video: buffer 0x04000001
xvba_video: buffer 0x04000000
xvba_video: vaRenderPicture(): context 0x02000000, 2 buffers
xvba_video: buffer 0x04000004
xvba_video: buffer 0x04000005
xvba_video: vaEndPicture(): context 0x02000000
xvba_video: vaBeginPicture(): context 0x02000000, surface 0x03000005
xvba_video: vaRenderPicture(): context 0x02000000, 2 buffers
xvba_video: buffer 0x04000005
xvba_video: buffer 0x04000004
xvba_video: vaRenderPicture(): context 0x02000000, 2 buffers
/GstPipeline:pipeline0/GstVaapiSink:vaapisink0.GstPad:sink: caps = video/x-surface, width=(int)1280, height=(int)720, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, type=(string)vaapi, opengl=(boolean)false
xvba_video: vaPutSurface(): surface 0x03000000, drawable 0x04400001, src rect (0,0):1280x720, dest rect (0,0):1280x720
xvba_video: Using Evergreen workaround 0
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
xvba_video: vaPutSurface(): surface 0x03000000, drawable 0x04400001, src rect (0,0):1280x720, dest rect (0,0):1280x720
xvba_video: vaBeginPicture(): context 0x02000000, surface 0x03000006
gst-launch-0.10: xvba_decode.c:614: xvba_BeginPicture: Assertion `!obj_context->va_buffers_count' failed.
Aborted (core dumped)