<div>Me and Andreas work together and to test the threading on a lower level we used the putsurface test in the libva package. </div><div>Turns out that the EMGD driver was not able to run this test with 2 threads. ( putsurface -t ). </div>
<div><br></div><div>So this is probably not a problem in the gst-vaapi glue or in libva itself. We think its more likely that there is a starvation problem in the EMGD libva backend.</div><div>The tests we have performed works fine on Ivy and Sandy with the open driver. </div>
<div><br></div><div>Since the EMGD driver is closed we are kind of stuck. Does anyone know why this driver is closed? We can understand that the 3D stuff for the US15W is closed but is there really that much IP in the libva backend?</div>
<div><br></div><div>@Krzysztof: This test might be a good one for you as well. To rule out the gst-vaapi glue. </div><div><br></div><div>Best regards. </div><div>Erik</div><br><div class="gmail_quote">2012/9/14 Krzysztof Kotlenga <span dir="ltr"><<a href="mailto:pocek@users.sf.net" target="_blank">pocek@users.sf.net</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">andreas.larssona wrote:<br>
<br>
> Btw, what I forgot to mention is that multiple streams works fine if<br>
> we have separate processes, instead of threads. So the kernel layer<br>
> and the HW obviously is correct and capable.<br>
<br>
</div>Same problem exists with libva and vdpau-driver. A simple test case<br>
can be this one:<br>
<br>
gst-launch-0.10 -e filesrc location=some.mkv ! matroskademux ! tee name=tee \<br>
tee. ! queue ! vaapidecode ! fakesink \<br>
tee. ! queue ! vaapidecode ! fakesink<br>
<br>
Errors with vdpau-driver range from SIGSEGV to one from:<br>
<br>
gst-launch-0.10: object_heap.c:109: object_heap_allocate: Assertion `heap->next_free >= 0' failed.<br>
 or<br>
vdpau_video: vaTerminate(): buffer ID 0x0400001e is still allocated, destroying<br>
 or<br>
gst-launch-0.10: vdpau_buffer.c:47: destroy_dead_va_buffers: Assertion `obj_buffer' failed.<br>
<br>
etc.<br>
<br>
This is with all the VA stuff from master branches and gst from the<br>
0.10 branch. No problem with separate processes.<br>
<br>
libva/intel-driver/gstreamer-vaapi from ubuntu 12.04 also sometimes<br>
crash with SIGSEGV in this case (i965). Master branches as of today<br>
seem to work fine though.<br>
<br>
Adding some long delay between each vaapidecode creation and startup<br>
doesn't help.<br>
<br>
Backtrace: <a href="http://paste.debian.net/189800/" target="_blank">http://paste.debian.net/189800/</a><br>
<br>
Any ideas?<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
_______________________________________________<br>
Libva mailing list<br>
<a href="mailto:Libva@lists.freedesktop.org">Libva@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/libva" target="_blank">http://lists.freedesktop.org/mailman/listinfo/libva</a><br>
</div></div></blockquote></div><br>