<html><head></head><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div id="yui_3_16_0_ym19_1_1481234722685_99983">I'm pretty sure I'm using the one from gst-plugins-bad (I'm using gstreamer master, last built about 3 days ago).</div><div id="yui_3_16_0_ym19_1_1481234722685_101930"><br></div><div id="yui_3_16_0_ym19_1_1481234722685_101936">But not 100% sure, is there a way to tell ?<br></div><div id="yui_3_16_0_ym19_1_1481234722685_107314"><br></div><div id="yui_3_16_0_ym19_1_1481234722685_100037"><br></div><div id="yui_3_16_0_ym19_1_1481234722685_101937" dir="ltr">So maybe I could mitigate this by manually calling drain() if in the error state or hook into the FLUSH_START ?   -  this seems a bit vague, as I haven't looked at these parts of Gstreamer yet.<br></div><div id="yui_3_16_0_ym19_1_1481234722685_107355"><span></span></div><div id="yui_3_16_0_ym19_1_1481234722685_109246"><div id="yui_3_16_0_ym19_1_1481234722685_109245"><br></div><div dir="ltr" id="yui_3_16_0_ym19_1_1481234722685_109273">I haven't seen the error in dispmanx-gst-play, however, my player is a bit more complex - I update the play state (seek, or try and change file) in gobject timer, from data I get on the network.<br></div><div id="yui_3_16_0_ym19_1_1481234722685_111046"> </div></div><div class="signature" id="yui_3_16_0_ym19_1_1481234722685_111047">S++</div> <div class="qtdSeparateBR"><br><br></div><div class="yahoo_quoted" style="display: block;"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;"> <div dir="ltr"><font size="2" face="Arial"> On Friday, December 9, 2016 12:26 PM, Enrique Ocaña González <eocanha@igalia.com> wrote:<br></font></div> <blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; margin-top: 5px; padding-left: 5px;"> <br><br> <div class="y_msg_container">El viernes, 9 de diciembre de 2016 11:41:00 (CET) Stuart Axon escribió:<br clear="none"><br clear="none">> > [...] The summary: double check that your sink honors the flush-start <br clear="none">> > event and that it doesn't hold or leak any egl buffer after flush-starts.<br clear="none">><br clear="none">> Interesting...  I'm using a pi3 with python with this pipeline:<br clear="none">>      filesrc->decodebin->glimagesink.<br clear="none">> <br clear="none">> I use set_window_handle from python and am also seeking within my videos.<br clear="none">> the only event I handle is "prepare_window_handle", maybe I need to handle<br clear="none">> some more to clean things up ? Alternately maybe the double free is in<br clear="none">> glimagesink ?<br clear="none"><br clear="none">Which version of glimagesink are you using, the one from gst-plugins-gl or the <br clear="none">one from gst-plugins-bad?<br clear="none"><br clear="none">There's a redisplay_texture field in glimagesink which seems to hold the last <br clear="none">texture received by the sink. In the gst-plugins-gl version, it's only cleared <br clear="none">[1] on PAUSED --> READY state changes, but not on PAUSED --> PAUSED changes. <br clear="none">Also there's no code to explicitly handle FLUSH_START events in that gst-<br clear="none">plugins-gl version, so I guess that's done in some base class and nobody <br clear="none">releases the texture in those cases.<br clear="none"><br clear="none">On the other hand, in the gst-plugins-bad version, there's additional support <br clear="none">for the DRAIN query [2] but still no FLUSH_START management. I'm not fully <br clear="none">acquainted with the code, but at first sight looks to me that the egl buffer <br clear="none">which the omxdecoder wants to release so badly is held in redisplay_texture by <br clear="none">gstglimakesink without permission during flushes, breaking the OMX buffer <br clear="none">release behaviour.<br clear="none"><br clear="none">Cheers.<br clear="none"><br clear="none">[1] <a shape="rect" href="https://cgit.freedesktop.org/gstreamer/attic/gst-plugins-gl/tree/gst/gl/" target="_blank">https://cgit.freedesktop.org/gstreamer/attic/gst-plugins-gl/tree/gst/gl/</a><br clear="none">gstglimagesink.c#n567<br clear="none">[2] <a shape="rect" href="https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/ext/gl/" target="_blank">https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/ext/gl/</a><br clear="none">gstglimagesink.c?id=1.10.2#n1123<div class="yqt1901970862" id="yqtfd41926"><br clear="none"><br clear="none">-- <br clear="none">Enrique Ocaña González<br clear="none">_______________________________________________<br clear="none">gstreamer-devel mailing list<br clear="none"><a shape="rect" ymailto="mailto:gstreamer-devel@lists.freedesktop.org" href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br clear="none"><a shape="rect" href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br clear="none"></div><br><br></div> </blockquote> </div> </div>  </div></div></body></html>