Best strategy to handle failing streams?

Axel Philipsenburg philipsenburg at papaya-cms.com
Wed Jun 12 05:24:08 PDT 2013


Hi everybody,

I need some help in finding the right directions for my evaluation of
gstreamer.

Short question:

How do I keep a pipeline running if one input source fails?

Long question:

Right now, I have a file source feeding a video/audio stream into the
pipeline and an RTMP source fetching a live video that's going to be
mixed with the other video.

As live network sources are unreliable I need a way to keep the pipeline
running to show the video file even if the network stream for the live
source breaks.

What I did so far is, I create two source bins and one "mixing" bin that
connect
via GhostPads. Then I would listen for error messages on the bus and
wait for the
live source bin to send a message.

The message does appear and, as explained from the "Dynamically changing
the pipeline" chapter
in the manual, I try to unlink and set the source bin to NULL state.

The problem is, that the rest of the pipeline seems to freeze even
though I don't see any state
change messages. The file source playback also freezes when the RTMP src
is buffering.

What I'd like to know is, how should I go about to remove sources that
throw error messages without
affecting the rest of the pipeline?

Is using the bus messages enough? Or do I need to work with (blocking?)
pad probes?

Thanks in advance!

Axel

----------------------------------------------------------------------

Mit freundlichen Gruessen / best regards
papaya Software GmbH

i.A. Axel Philipsenburg

-- 
papaya Software GmbH | Im MediaPark 5 | 50670 Koeln | Germany
Tel./Ph.: +49-221-5743-8072 | Fax: +49-221-5743-8099
mailto:philipsenburg at papaya-cms.com | http://www.papaya-cms.com/
--
Geschaeftsfuehrer: André Schnitzler, Daniel Schäfer
Sitz & Registergericht: Koeln | HRB 60030 | USt.-Id.-Nr.: DE 255642963
--



More information about the gstreamer-devel mailing list