Adding Black or Blank Frames to pipeline if input device has no signal.

jaskarn.kalsi jaskarn.kalsi at globallogic.com
Fri Nov 16 15:51:34 UTC 2018


Hi All,
We are working on a live video test automation tool.
We are using BlackMagic Intensity Pro 4k card to capture the live video from
source.

Thing is we have a sanario's in which we have to reboot the source device or
change the device. Once we take out the HDMI cable from source we are stuck
in to situations:
1. decklinkvideosrc outputs "no signal" message.
2. It gives EOS and gstreamer Thread kills the process.

We want to be able to keep the pipelines running even if there is "no
signal" or "EOS". 
One solution that i expect is to add blank buffers to the pipeline on "no
signal", as we are using appsink and appsrc to extract buffers from the
pipeline.

How can we achieve this without gstreamer pipelines getting stopped. 
I have been able to add blank buffers to the running pipelines on "no
signal". Thing is ones the signal comes back the pts on buffers starts from
zero again and ends up stopping the streams, and recordings, and even
sometimes giving EOS on the pipeline.

Really need a solid solution to keep these pipelines running and make input
devices kind of hot swapable.

Following are my pipelines.
*decklinkvideosrc -> queue -> videoconvert -> appsink
appsrc -> tee -> queue -> fpsdisplaysink (video-sink property set to
fakesink)
*
Dynamically add and remove encoding bin if any one of streaming and
recording bins is requested to be added.
Encode Bin
*queue -> nvh264enc -> h264parse -> matroskamux -> queue -> tee*
Streaming Bin
*queue -> tcpserversink*
Recording Bin
*queue -> filesink*




--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list