<div dir="ltr">Is it same as <a href="https://bugzilla.gnome.org/show_bug.cgi?id=767499" target="_blank">https://bugzilla.gnome.org/<wbr>show_bug.cgi?id=767499</a> ?<div><br></div><div>There are potential fixes here: <a href="https://git.collabora.com/cgit/raspberry-pi/gst-omx.git/log/?h=rpi-1.0.0.1" target="_blank">https://git.collabora.<wbr>com/cgit/raspberry-pi/gst-omx.<wbr>git/log/?h=rpi-1.0.0.1</a></div><div>"<a href="https://git.collabora.com/cgit/raspberry-pi/gst-omx.git/commit/?h=rpi-1.0.0.1&id=ec7fe344c9d65eafa10b554e0a1a69e0fe58570a" style="color:black;text-decoration-line:none;font-family:sans-serif;font-size:13.3333px;white-space:nowrap" target="_blank">omxvideodec: fix deadlock when flush on EOS</a>"</div><div>"omxvideodec: Do not try to acquire buffer when flushing"</div><div>You might need also a few commits in between.</div><div><br></div><div>Also could be related to <a href="https://bugzilla.gnome.org/show_bug.cgi?id=759043" target="_blank">https://bugzilla.gnome.org/<wbr>show_bug.cgi?id=759043</a></div><div><br></div><div>If it does not help, you might need to check if glimagesink is still releasing all its ref to buffers in GST_QUERY_DRAIN .</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 10 July 2017 at 18:00, Samuel Hurst <span dir="ltr"><<a href="mailto:samuelh@rd.bbc.co.uk" target="_blank">samuelh@rd.bbc.co.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi All,<br>
<br>
<br>
I'm currently writing a small application to demonstrate DASH channel<br>
changes, and in doing so I've come across something strange with the OMX<br>
hardware decoder element.<br>
<br>
I've written an application that takes a list of MPDs and then allows a<br>
user to select which one to play back. When a user wants to change the<br>
channel, I do the following:<br>
<br>
* Set the whole pipeline to READY<br>
* Unlink, destroy and create new souphttpsrc and dashdemux elements<br>
* Relink the new elements with a new MPD<br>
* Sync all the child elements of the pipeline to the READY state, and<br>
* Set the pipeline to PLAYING.<br>
<br>
On my PC this works fine, the video pauses while the stream changes and<br>
then begins playback on the new stream without any interruption to the<br>
display. However, on a Raspberry Pi (standing in as a noddy set top box<br>
client), the playback doesn't start up after a channel change and the<br>
whole pipeline is stuck in the PAUSED state while the GstGLImageSinkBin<br>
waits for an Asynchronous state change to complete.<br>
<br>
Tracing it back, it seems that the GstOMXH264Dec element isn't passing<br>
buffers down to the elements beneath it, so the GstGLImageSink can't<br>
resolve the Asynchronous state change. This is because when it restarts,<br>
it fails when setting itself up as the egl_render port is set as<br>
"flushing", presumably a consequence of the end of the first stream.<br>
I've attached an excerpt of the log when it's restarting that shows this.<br>
<br>
In order to fix this, I'm having to also unlink, delete and recreate the<br>
OMX decoder at the same time as removing the DASH elements. Is this<br>
expected, and it's just a happy coincidence that the VA-API decoder on<br>
my PC survives such a pipeline change? Or is this a potential bug in the<br>
OMX decoder?<br>
<br>
For reference, I'm using GStreamer 1.12.1 in both cases. My PC is<br>
running Ubuntu 16.04 with the 4.8.0 HWE kernel with VA-API version 0.39<br>
with Intel i965 driver version 1.7.0. The Pi is a Pi 2 running a custom<br>
Buildroot 2017.05 image and a 4.9 kernel with rpi-userland version 4b24a81a.<br>
<br>
<br>
Thanks in advance,<br>
-Sam<br>
<br>______________________________<wbr>_________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.<wbr>freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/gstreamer-<wbr>devel</a><br>
<br></blockquote></div><br></div>