[GstRtpBin] Video streaming/receiving simultaneously

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

[GstRtpBin] Video streaming/receiving simultaneously

Andreas Auer
Hello,

I'm currently working with GStreamer and want to build an application
which is able to transmit an encoded video captured from a camera and
receive a video stream, decode and display it simultaneously.

I put all the elements in one pipeline. The input stream has a short
delay because of buffering (some seconds). I have seen in the debugging
output of gstreamer that a latency query is sent to all sink elements.
And the value "MAX(all min_latencies)" is taken to synchronize the streams.
Now, the problem is that I don't want to synchronize the incoming and
outgoing stream! I want to send the encoded data as fast as possible to
the client.

I think my problem arose because I have put all my elements in one
pipeline, am I right? But how can I fix this?? For most of the elements
it wouldn't be a problem to put it into two different pipelines. But the
same GstRtpBin element is used by the incoming and outgoing stream. Can
I put one element into two different pipelines??

Thanks,
Andreas


------------------------------------------------------------------------------
The modern datacenter depends on network connectivity to access resources
and provide services. The best practices for maximizing a physical server's
connectivity to a physical network are well understood - see how these
rules translate into the virtual world?
http://p.sf.net/sfu/oracle-sfdevnlfb
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: [GstRtpBin] Video streaming/receiving simultaneously

Olivier Crête-2
Hi,

On Fri, 2011-02-04 at 12:04 +0100, Andreas Auer wrote:

> I put all the elements in one pipeline. The input stream has a short
> delay because of buffering (some seconds). I have seen in the debugging
> output of gstreamer that a latency query is sent to all sink elements.
> And the value "MAX(all min_latencies)" is taken to synchronize the streams.
> Now, the problem is that I don't want to synchronize the incoming and
> outgoing stream! I want to send the encoded data as fast as possible to
> the client.
>
> I think my problem arose because I have put all my elements in one
> pipeline, am I right? But how can I fix this?? For most of the elements
> it wouldn't be a problem to put it into two different pipelines. But the
> same GstRtpBin element is used by the incoming and outgoing stream. Can
> I put one element into two different pipelines??
There are two different solutions to that problem:

1. Just put sync=false async=false on the sending-side sinks. But that
means that the sent stuff will not be synchronized to one another.

2. You can also do custom latency processing, by either subclassing
GstBin/GstPipeline or just by hooking up to the "do-latency" signal. In
this case you can give different latencies to different sinks. I have an
example [1] where you can tag different sinks with
g_object_set_qdata(obj, g_quark_from_string ("gst-latency-group"), <any
pointer>) .. then any sinks that have the same value will have the same
latency.

That said, Farsight2 still uses the sync=false/async=false tactic
instead of multiple latencies.

[1] http://git.collabora.co.uk/?p=user/tester/gst-plugins-farsight-tester.git;a=blob;f=gst/multipipeline/fsmultipipeline.c;h=9d94ad6e97c5c210075d83a8f51841cf1a3144bf;hb=9677f33515fe76ca4cee828cc92868c3ed7d258c

--
Olivier Crête
[hidden email]

------------------------------------------------------------------------------
The modern datacenter depends on network connectivity to access resources
and provide services. The best practices for maximizing a physical server's
connectivity to a physical network are well understood - see how these
rules translate into the virtual world?
http://p.sf.net/sfu/oracle-sfdevnlfb
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel

signature.asc (205 bytes) Download Attachment