Pipeline state is stuck.

Stirling Westrup swestrup at gmail.com
Thu Jan 10 12:17:30 PST 2013


Some further information. This issue seems to be caused by the fact
that I am using a dynamic pipeline and the video output bin is only
created/configured/attached to decoderbin during the pipeline
transition from READY to PAUSED state, as this is the interval during
which decoderbin creates its pads.  I do call
gst_element_sync_state_to_parent to sync the video stream to the
pipeline, and it returns ASYNC and then later fails.

Somehow this fail does *not* cause the main pipeline transition to
fail. So, we have a case where the pipeline thinks its in the PAUSED
state and the xvimagesink is in the NULL state. During attempts to put
the Pipeline in NULL state, it tries to transition all elements
through READY state, but this fails for xvimagesink as its already in
NULL and can't enter READY.

Thus the transition to NULL fails.

*REALLY* Not sure how to resolve this mess. I can probably detect the
failure of the video output to enter PAUSED state in my callback, but
then how do I cause the main pipeline transition to fail?


On Thu, Jan 10, 2013 at 3:02 PM, Stirling Westrup <swestrup at gmail.com> wrote:
> As part of an experiment, I set up a dynamic pipeline and deliberately
> set an invalid display on xvimagesink, as I wanted to know what sort
> of error I would get, so I could produce a good diagnostic to the user
> (who provides the display number) in my application.
>
> As expected, the pipeline failed to transition from PAUSED to PLAYING
> state with xvimagesink producing an error.
>
> However, during shutdown, I found that the pipeline was now stuck in
> its current state. Any attempt to set the pipeline into NULL state
> would fail. As a consequence, all attempts to unref the pipeline
> failed.
>
> How do I FORCE a pipeline to enter NULL state? Do I really have to
> write a routine that recursively sets each individual element to NULL
> and then removes and unrefs it?
>
> --
> Stirling Westrup
> Programmer, Entrepreneur.
> https://www.linkedin.com/e/fpf/77228
> http://www.linkedin.com/in/swestrup
> http://technaut.livejournal.com
> http://sourceforge.net/users/stirlingwestrup



-- 
Stirling Westrup
Programmer, Entrepreneur.
https://www.linkedin.com/e/fpf/77228
http://www.linkedin.com/in/swestrup
http://technaut.livejournal.com
http://sourceforge.net/users/stirlingwestrup


More information about the gstreamer-devel mailing list