<div dir="ltr"><div><div><div><div><div>Referring to the example here:<br><div class=""><img class="" id=":108" src="https://mail.google.com/mail/u/0/images/cleardot.gif" alt=""></div><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-dynamic-pipelines.html" target="_blank">http://<span class="">gstreamer</span>.freedesktop.org/data/doc/<span class="">gstreamer</span>/head/manual/html/section-dynamic-pipelines.html</a><br><br></div>in the pad_probe_cb function the blocking probe is removed straight away. It seems to me that this would allow data to continue to flow into the element following the EOS. That data would then be lost when the element is removed. The example only shows one element but potentially this could be several elements with large internal buffers.<br><br></div><div>I'm visualising it like this (data flow left to right)<br></div><div><br></div>|<===== element ====>|<br></div>datadatadatadatadatadata<br><br></div>Blocking pad adds EOS:<br><br>|<===== element ====>|<br>[EOS]datadatadatadatada<br><br></div>Blocking pad has been removed so data flowing again:<br><br>|<===== element ====>|<br>datadata[EOS]datadatada<br><div><br></div><div>EOS reaches end, element is deleted and data is lost:<br></div><div><br>|<===== element ====>|<br>datadatadatadatada[EOS]<br><br></div><div>So should the blocking probe remain attached to the pad until the element is replaced?<br></div><div><div><br></div></div></div>