[Libva] Decoding and displaying multiple streams using gstreamer-vaapi

Krzysztof Kotlenga pocek at users.sf.net
Fri Sep 14 04:30:03 PDT 2012


andreas.larssona wrote:

> Btw, what I forgot to mention is that multiple streams works fine if
> we have separate processes, instead of threads. So the kernel layer
> and the HW obviously is correct and capable.

Same problem exists with libva and vdpau-driver. A simple test case
can be this one:

gst-launch-0.10 -e filesrc location=some.mkv ! matroskademux ! tee name=tee \
tee. ! queue ! vaapidecode ! fakesink \
tee. ! queue ! vaapidecode ! fakesink

Errors with vdpau-driver range from SIGSEGV to one from:

gst-launch-0.10: object_heap.c:109: object_heap_allocate: Assertion `heap->next_free >= 0' failed.
 or
vdpau_video: vaTerminate(): buffer ID 0x0400001e is still allocated, destroying
 or
gst-launch-0.10: vdpau_buffer.c:47: destroy_dead_va_buffers: Assertion `obj_buffer' failed.

etc.

This is with all the VA stuff from master branches and gst from the
0.10 branch. No problem with separate processes.

libva/intel-driver/gstreamer-vaapi from ubuntu 12.04 also sometimes
crash with SIGSEGV in this case (i965). Master branches as of today
seem to work fine though.

Adding some long delay between each vaapidecode creation and startup
doesn't help.

Backtrace: http://paste.debian.net/189800/

Any ideas?





More information about the Libva mailing list