Dynamically changing the pipeline example code

David Jaggard davywj at gmail.com
Mon Feb 8 12:24:15 UTC 2016


Referring to the example here:
http://gstreamer.freedesktop.org/data/doc/gstreamer
/head/manual/html/section-dynamic-pipelines.html

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.

I'm visualising it like this (data flow left to right)

|<===== element ====>|
datadatadatadatadatadata

Blocking pad adds EOS:

|<===== element ====>|
[EOS]datadatadatadatada

Blocking pad has been removed so data flowing again:

|<===== element ====>|
datadata[EOS]datadatada

EOS reaches end, element is deleted and data is lost:

|<===== element ====>|
datadatadatadatada[EOS]

So should the blocking probe remain attached to the pad until the element
is replaced?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20160208/19cbf10f/attachment.html>


More information about the gstreamer-devel mailing list