Request pipeline terminate from pulsesink

Tarun Tej K tarun4690 at gmail.com
Thu May 20 13:55:43 UTC 2021


On Thu, May 20, 2021 at 6:27 PM Nicolas Dufresne <nicolas at ndufresne.ca> wrote:
>
> Le jeudi 20 mai 2021 à 13:03 +0530, Tarun Tej K via gstreamer-devel a écrit :
> > Hi,
> >
> > I need to stop my pipeline from a pulsesink element, whenever pulseaudio sends
> > a custom defined stream event.
> > I able to get the event from pulseaudio in the callback -
> > gst_pulsering_stream_event_cb (
> > https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/blob/master/ext/pulse/pulsesink.c#L789
> > )
> > I am looking for the proper way to get the pipeline terminated upon getting
> > the event from pulseaudio
> > I am thinking of two options :
> > 1. send EOS from the pulsesink/basesink and use the EOS event in the
> > application bus callback to stop the pipeline
>
> This is not really doable from a streaming thread.
>
> > 2. post NULL state msg request to the bus (like how PAUSED is posted upon CORK
> > stream event currently)
> > I am not sure if the clean up will be proper with the above two ways.
> > Is there any better way for the sink elements to request for termination of
> > the pipeline?
>
> Perhaps we could have some generic kind of message. So you'd be sending a custom
> pulse audio message with the string from the pulse event type. This allow for
> "custom" work like yours without changing the element. The application take care
> of doing the right thing.

Since the requirement is to terminate the pipeline, we have used the
custom message and tried by setting the pipeline to NULL in the bus
callback but it seems to be resulting a deadlock.
Is it recommended to put the pipeline to null from bus callback or
should we use some async call?
>
>
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>


More information about the gstreamer-devel mailing list