Multiple pipelines in an application

Hannes Weisbach hannes.weisbach at tu-dresden.de
Fri Aug 21 02:44:39 PDT 2015


Hello,

I'm writing an application which handles two video streams from USB
video class devices, which runs on the Raspberry Pi.  The cameras
stream H.264.  The application needs to store a high-quality version
locally on disk (using filesink).  Additionally a downscaled, lower
quality RTP stream should be provided.  Decompression and compression
is done using the Raspberry's hardware acceleration (with gst-omx).  I
have implemented the streams using qt-gstreamer.

Right now my application has two pipelines, one for each camera
stream.  Occasionally, the program crashes, around the time the second
pipeline goes into playing state.

After a bit of googling I found an old message from this list [0],
saying that multiple pipelines in one application are not easily
doable.  I was wondering if that limitation still applies, or if I
have a bug somewhere else.

Launching my application in gdb lets the segfault trigger even less
often, suggesting some kind of race condition.  When I caught a crash
in gdb, the crashing function was reported as video_orc_unpack_I420.
However, the function was called with broken parameters (way too large
n), so the cause might be elsewhere.  Also the stack seemed to be
corrupted.

Anyway, I had no problems running just one pipeline in my application,
so I'd appreciate a comment on whether its possible/advisable to have
multiple pipelines in an application or if I should refactor to have
only one pipeline (and possible start two instances of the
application).

Thank you for your time,
with best regards,
Hannes Weisbach

[0] http://lists.freedesktop.org/archives/gstreamer-devel/2006-June/012599.html


More information about the gstreamer-devel mailing list