Hello GStreamer guru’s.
I have a application which needs a feed to stay live not to cause the whole pipeline to EOS. fallbackswitch is a great offering to use however I’d thought I’ll be smart and use the new unixfdsrc/sink elements over using shmsink and shmsrc as these are new an use DMA with zero copy?
The shm arrangement requires to know the buffer size etc. Furthermore, I wanting to split the sender and receiver over different thread boundaries working toward having to desperate programs.
I’m using Ubuntu 24.04 LTS with gstreamer 1.24.2.
I’ve been experimenting with gst-launch-1.0 to test my theory however, after closing the sender, the receiver EOS and closes.
Any tips on making the receiver switch to a blank screen (black) with audio silence?
SENDER
gst-launch-1.0 -v multifilesrc location=starwars.ts loop=true ! identity sync=true ! tsdemux name=demux demux. ! h264parse ! nvh264dec ! videoconvert ! video/x-raw,format=I420,width=1920,height=1080,framerate=25/1 ! queue ! unixfdsink socket-path=/tmp/video_HD1 demux. ! decodebin ! audioconvert ! audio/x-raw,format=S16LE,rate=48000,channels=2 ! queue ! unixfdsink socket-path=/tmp/audio_HD1
RECEIVER
gst-launch-1.0 -v
unixfdsrc socket-path=/tmp/video_HD1 ! identity sync=true ! fallbackswitch name=v ! videoconvert ! video/x-raw,format=I420,width=1920,height=1080,framerate=25/1 !
queue ! autovideosink
unixfdsrc socket-path=/tmp/audio_HD1 ! identity sync=true ! fallbackswitch name=a ! audioconvert ! audio/x-raw,format=S16LE,rate=48000,channels=2 ! queue ! autoaudiosink
videotestsrc pattern=black is-live=true ! video/x-raw,format=I420,width=1920,height=1080,framerate=25/1 ! v.
audiotestsrc wave=silence is-live=true ! audio/x-raw,format=S16LE,rate=48000,channels=2 ! a.
What’s my issue here?