why does gst_element_set_state(PAUSED) block after EOS?
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?