Dynamic pipeline change - No pad probe callback getting invoked.

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Dynamic pipeline change - No pad probe callback getting invoked.

Bhavya
Hello All,

We are stuck in handling below use case, Please provide your input. Thanks.

*Overview *
Use case is to disable and enable audio stream run-time without effecting
video stream playback.

*Pipeline *

filesrc ! typefind ! demuxer name=d d. ! audio multiqueue ! audio
input-selector ! <decoding elements> ! audiosink d. ! video multiqueue !
video input selector ! <decoding elements> ! videosink.

Now on disabling audio stream, below steps are followed.

1) Install IDLE pad probe on audio input-selector src pad.
2) On pad probe callback, unlink and remove decoding elements and audiosink.
3) link audio input-selector src pad to fakesink(sync=true).
4) Remove pad probe and return GST_PAD_PROBE_OK.

This works fine, audio disables and video starts playing.

*Issue * : After disabling, trying to enable audio stream back.

1) Install IDLE pad probe now on audio input-selector src pad.

Here IDLE pad probe  never gets invoked.

Gstreamer version : 1.6.3

Not sure why IDLE pad probe callback not getting called.

Tried using other pad probe callback, but same behavior is seen.

This issue happens on imx6x hardware and issue is not always, seen somtime.
Easily happens with slow device like MTP. In USB sometimes observed.

In PC, linux it seems to work fine.

Not sure which elements causing this. From gstreamer logs, we are not able
to figure out anything yet.

Please suggest what can be next action item. Thanks.









--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Dynamic pipeline change - No pad probe callback getting invoked.

Baby Octopus
Administrator
Why not add a simple buffer probe and drop the buffer(unref) when you dont
want to pass it through downstream?

~BO



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Dynamic pipeline change - No pad probe callback getting invoked.

Bhavya
Thanks for the response.

When application call disable stream, they would be using same audio-sink to
play out some other stream.
If stream is disabled only by dropping buffer, audio device will remain
opened and not released.

Hence removing sink need to be done when disable stream is called from
application.

Please let me know your input. Thanks.



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Dynamic pipeline change - No pad probe callback getting invoked.

Baby Octopus
Administrator
You can still do that by setting the rest of the elements downstream
to NULL for the very first time when you want to unlink, and only
drop subsequent probe buffer callbacks

~BO





--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel