<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13.3333339691162px">> I clipped a very small program, no threads, from my code which unrefs nothing (except one NONEMPTY message gst_bus_pop_filtered from the bus to detect </span><div><span style="font-family:arial,sans-serif;font-size:13.3333339691162px">> EOS, ERROR, SEGMENT_DONE, time expired) but fails the same way very quickly playing just two .wmv files in a cycle </span><div><span style="font-family:arial,sans-serif;font-size:13.3333339691162px">> on i965</span><span style="font-family:arial,sans-serif;font-size:13.3333339691162px">_drv_video.so through filesrc location=... ! decodebin ! videoconvert ! autovideosink.</span><br></div><div><span style="font-family:arial,sans-serif;font-size:13.3333339691162px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13.3333339691162px">It fails the same way with vaapisink with</span></div><div><span style="font-family:arial,sans-serif;font-size:13.3333339691162px"><br></span></div><div><blockquote type="cite" style="color:rgb(80,0,80);font-family:arial,sans-serif;font-size:13.3333339691162px">Unexpected error from C library during 'p_thread_mutex_lock'. Invalid argument. Aborting</blockquote></div><div><span style="font-family:arial,sans-serif;font-size:13.3333339691162px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13.3333339691162px">But the same simple program is rock-solid if I play the same two media files converted to .mp4 in an infinite cycle, on the same platform.</span></div><div><span style="font-family:arial,sans-serif;font-size:13.3333339691162px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13.3333339691162px">Conclusion: there's something wrong specific to .wmv files in decodebin, videoconvert, autovideosink, vaapisink, and </span><span style="font-size:13.3333339691162px;font-family:arial,sans-serif">i965</span><span style="font-size:13.3333339691162px;font-family:arial,sans-serif">_drv_video.so, it's not my error.</span></div><div><span style="font-size:13.3333339691162px;font-family:arial,sans-serif"><br></span></div><div><span style="font-size:13.3333339691162px;font-family:arial,sans-serif">I don't have enough knowledge to debug </span><span style="font-family:arial,sans-serif;font-size:13.3333339691162px">decodebin, videoconvert, autovideosink, vaapisink</span><span style="font-size:13.3333339691162px;font-family:arial,sans-serif">, and </span><span style="font-size:13.3333339691162px;font-family:arial,sans-serif">i965</span><span style="font-size:13.3333339691162px;font-family:arial,sans-serif">_drv_video.so</span><span style="font-family:arial,sans-serif;font-size:13.3333339691162px">. I think it's already useless: I am with the Ubuntu 14.04 stock GStreamer 1.2.4, and the mailing list is already talking version 1.4</span></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 23, 2014 at 5:28 PM, Sergei Vorobyov <span dir="ltr"><<a href="mailto:sergei.vorobyov@facilitylabs.com" target="_blank">sergei.vorobyov@facilitylabs.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I clipped a very small program, no threads, from my code which unrefs nothing (except one NONEMPTY message gst_bus_pop_filtered from the bus to detect EOS, ERROR, SEGMENT_DONE, time expired) but fails the same way very quickly playing just two .wmv files in a cycle on i965<span style="font-family:arial,sans-serif;font-size:13.3333339691162px">_drv_video.so through filesrc location=... ! decodebin ! videoconvert ! autovideosink.</span><div><span style="font-family:arial,sans-serif;font-size:13.3333339691162px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13.3333339691162px">I will carefully inspect it and then proceed to valgrinding it.</span></div><div><span style="font-family:arial,sans-serif;font-size:13.3333339691162px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13.3333339691162px">Thanks for the hints! </span></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 23, 2014 at 4:12 PM, Nicolas Dufresne <span dir="ltr"><<a href="mailto:nicolas.dufresne@collabora.com" target="_blank">nicolas.dufresne@collabora.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Le 2014-09-23 09:57, Sergei Vorobyov a écrit :<span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The art of debugging is about zooming in on the real problem, cutting off trivial or nonessential things, not to debug everything altogether with the biggest hammer available.<br>
</blockquote></span>
Up to you, my far guess is that you actually unref too much something somewhere, and endup doing "use after free" object that holds a mutex and crash. Normally, valgrind, with the environment G_SLICE=always_malloc gives an overview of that very quickly, and can often be done before cutting down you pipeline. I say you, because it's an habit to blame the new and shiny code, but obviously it's not impossible that libvaapi or the graphic driver is bugged. You have already said that without HW acceleration it's fine.<div><div><br>
<br>
Nicolas<br>
______________________________<u></u>_________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.<u></u>freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/<u></u>mailman/listinfo/gstreamer-<u></u>devel</a><br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>