Dynamic pipeline change - No pad probe callback getting invoked.
We are stuck in handling below use case, Please provide your input. Thanks.
Use case is to disable and enable audio stream run-time without effecting
video stream playback.
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.
Re: Dynamic pipeline change - No pad probe callback getting invoked.
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