Multiple pipelines in an application

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Multiple pipelines in an application

Hannes Weisbach
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
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

AW: Multiple pipelines in an application

Thornton, Keith
I have multiple pipelines running in my application without having observed any problems.

-----Ursprüngliche Nachricht-----
Von: gstreamer-devel [mailto:[hidden email]] Im Auftrag von Hannes Weisbach
Gesendet: Freitag, 21. August 2015 11:45
An: [hidden email]
Betreff: Multiple pipelines in an application

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
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

AW: Multiple pipelines in an application

Thornton, Keith
In reply to this post by Hannes Weisbach
I forgot to mention that the elements sould have unique names.

-----Ursprüngliche Nachricht-----
Von: gstreamer-devel [mailto:[hidden email]] Im Auftrag von Hannes Weisbach
Gesendet: Freitag, 21. August 2015 11:45
An: [hidden email]
Betreff: Multiple pipelines in an application

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
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Multiple pipelines in an application

Sebastian Dröge-3
In reply to this post by Hannes Weisbach
On Fr, 2015-08-21 at 11:44 +0200, Hannes Weisbach wrote:

> 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.
Multiple pipelines in the same application is not a problem at all, you
don't have to do anything special for making that work.

What might not work however is to use the same hardware resources twice
at the same time, or libraries used by GStreamer might not be able to
do things twice in the same process.


Can you file a bug about this with a reproducible testcase, backtrace
of the crash and a GStreamer debug log?


--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (968 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Multiple pipelines in an application

Mike-Maverick
In reply to this post by Hannes Weisbach
can you please post your tx and rx pipeline. I am trying to achieve the same
from a very long time.
Thanks



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel