fail to receive GST_MESSAGE_STATE_CHANGED (GST_STATE_NULL) of pipeline, but all receive the msg for all its children

Matthew Waters ystreet00 at gmail.com
Wed May 8 02:48:03 UTC 2019


Downward state changes are always synchronous.

So once gst_element_set_state (pipeline, GST_STATE_NULL); completes, all
the internal elements are in the NULL state and you can unref the pipeline.

On 8/5/19 12:42 pm, Halley Zhao wrote:
> then, what's the right way to cleanup the pipeline to make sure it has
> already changed status to GST_STATE_NULL?
>
> Matthew Waters <ystreet00 at gmail.com <mailto:ystreet00 at gmail.com>>
> 于2019年5月8日周三 上午10:32写道:
>
>     Not receiving READY->NULL state change messages is normal as the
>     GstBus attached to the pipeline is set to flushing to avoid
>     reference cycles.
>
>     Cheers
>     -Matt
>
>     On 8/5/19 12:05 pm, Halley Zhao wrote:
>>     Hi experts:
>>     I want to do cleanup after pipeline changed to GST_STATE_NULL.
>>     however I received GST_MESSAGE_STATE_CHANGED with newstate
>>     of GST_STATE_NULL of its children element, but not the pipeline
>>     itself.
>>
>>     I don't know whether there is something wrong in my code, or it
>>     is by design?
>>     my pipeline contains
>>     "appsrc-->h264parse-->videodecode-->appsink". here is my log:
>>     the source code sees attachment
>>
>>     (cb_need_data, 148)emit eos signal
>>     (bus_call, 61)End of stream
>>
>>     (bus_call, 84)my_sink state change, old state: PLAYING, new
>>     state: PAUSED
>>     (bus_call, 84)my_vdec state change, old state: PLAYING, new
>>     state: PAUSED
>>     (bus_call, 84)my_h264parse state change, old state: PLAYING, new
>>     state: PAUSED
>>     (bus_call, 84)my_appsrc state change, old state: PLAYING, new
>>     state: PAUSED
>>     (bus_call, 84)my_pipeline state change, old state: PLAYING, new
>>     state: PAUSED
>>     (bus_call, 84)my_sink state change, old state: PAUSED, new state:
>>     READY
>>     (bus_call, 84)my_vdec state change, old state: PAUSED, new state:
>>     READY
>>     (bus_call, 84)my_h264parse state change, old state: PAUSED, new
>>     state: READY
>>     (bus_call, 84)my_appsrc state change, old state: PAUSED, new
>>     state: READY
>>     (bus_call, 84)my_pipeline state change, old state: PAUSED, new
>>     state: READY
>>     (bus_call, 84)my_sink state change, old state: READY, new state: NULL
>>     (bus_call, 84)my_vdec state change, old state: READY, new state: NULL
>>
>>     _______________________________________________
>>     gstreamer-devel mailing list
>>     gstreamer-devel at lists.freedesktop.org <mailto:gstreamer-devel at lists.freedesktop.org>
>>     https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20190508/07aa1b57/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20190508/07aa1b57/attachment.sig>


More information about the gstreamer-devel mailing list