Draw ui when pipeline pause

hi i need some help

i have no problem drawing overlay ui with dsexample when Deepstream Pipeline is GST_STATE_PLAYING

but dsexample transform_ip function has not called when GST_STATE_PAUSE

i want to show menu(UI) mode when pipeline is GST_STATE_PAUSE

when pipeline paused, can i control nvbufsurface at main event timer or other thread?

Like dsexample’s transform_ip

means, can i get fullframe pointer from outside of the gst pipeline’s callback func,
and can drawing my custom fullframe pointer? like nvoverlaysink

or else gstreamer can dynamic switching other plugin(like dsexample) before infer?

This is the structure I want.

#                l------infer------......- tiler -..... dsexample ...... - osd - convert - overlay
#                l
#camera srcs ----l  switch
#                l
#                l------custom plugin(can get GstBuffer(fullframe pointer)) - overlay

I’m not used to handling “gstreamer” yet. I’m sorry.

this is possible??

Thanks!

For the first comment, it is not possible since all components stop processing when in PAUSED state.

For the second comment, the user can do something like this.

#                l--queue--valve--infer------......- tiler -..... dsexample ...... - osd - convert ---| 
#                l                                                                               |
#camera srcs ----tee                                                                            funnel ---- overlay
#                l                                                                               |
#                l---queue----valve----custom plugin(can get GstBuffer(fullframe pointer))-------|

valve has a boolean property which can turn on/off the flow of buffers

In additon, there’s also an OutputSelector https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-output-selector.html which can be used in place of (tee + valve).
And a corresponding inputSelector https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-input-selector.html

at last I found the key.

i restructured pipeline

#               l---queue - valve ---- [original deepstream sdk pipeline after mux] ---------- |  
#               l                                                                              |
#srcs - mux - tee                                                                            funnel ---- overlay
#               l                                                                              |
#               l---queue - valve - tee -------- mux ------ demux -------- compositor -------- l
#                                    l		                               l
#                                    l -------- queue ---------- menu ui ------l

It will be of great help for me

Thank you very much bcao