why does gst_element_set_state(PAUSED) block after EOS?

Andres Gonzalez andres.agoralabs at gmail.com
Thu Jul 6 22:24:51 UTC 2017


Hi,
I have a simple pipeline:    filesrc   ! decodebin  ...  ->  ...  appsink
that is working fine playing a media file in my application.  While the file
is playing, I can call gst_element_set_state(PAUSED) and
gst_element_set_state(PLAYING) and the pipeline works fine as expected: it
pauses and starts up again. On the appsink, I have an EOS callback
registered which works as expected so it is called when the filesrc reached
the end of the file.

After I get the EOS from the appsink, I cannot control the state of the
pipeline. After EOS, if I call gst_element_set_state(PAUSED) that routine
blocks and hangs my thread.

Question: Does an EOS event from the appsink change the state of the
pipeline?

Question: What is the proper way to handle the EOS event for a filesrc?

Question: Are there any restrictions on what I can call inside the callback
when I get the EOS event from appsink?

Thanks,
-Andres



--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/why-does-gst-element-set-state-PAUSED-block-after-EOS-tp4683719.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list