Pipeline never reaches NULL state, calls to set_state hang

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Pipeline never reaches NULL state, calls to set_state hang

Tyler Compton
Hi everyone,

I have a pipeline that looks like this, although I'm building it manually instead of using `Gst.parse_launch`.

rtspsrc location=[url] ! rtph265depay ! queue ! decodebin ! videoconvert ! video/x-raw,format=(string)BGR ! appsink max-buffers=60 drop=true emit-signals=true

After I start this pipeline, I spin up a thread that routinely queries the state of the pipeline with `pipeline.get_state` and sets the pipeline to NULL if the pipeline appears to be stuck in the READY or PAUSED state, or if it's been a suspiciously long time since the last frame has been produced. If the pipeline is in a NULL state, a new pipeline will be created to replace it.

I'm seeing behavior where, when I call `pipeline.set_state(Gst.State.NULL)`, the call occasionally appears to block forever. I tried sending a request to change the state on the bus, which unsurprisingly doesn't block, but the pipeline still never reaches the NULL state.

What might cause a pipeline to deadlock on a state change like this?

Thanks,
Tyler

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel