leaky queue: up or down? (choppy sound)

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

leaky queue: up or down? (choppy sound)

Antoine Martin
Hi,

I have some tcp sound pipelines like these:
* sender:
SOMESRC ! vorbisenc ! gdppay ! queue leaky=downstream ! tcpserverssink
host=192.168.42.222 port=20222

* receiver:
tcpclientsrc host=192.168.123.222 port=20222 ! queue leaky=upstream !
gdpdepay ! vorbisdec  ! pulsesink

I had added the leaky queues because the clients may take a few seconds
before connecting and I want them to get the sound without much of a
delay (1 second is ok), dropping what they missed before connecting if
needed.

I must be misunderstanding the way "queue" leaks because when it does I
get choppy sound that doesn't go away until the client re-connects.
I tried up/down stream without much luck. Or maybe it is not in the
right location in the pipeline?

Thanks
Antoine
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: leaky queue: up or down? (choppy sound)

Stefan Sauer
hi,

On 15.04.2011 15:59, Antoine Martin wrote:

> Hi,
>
> I have some tcp sound pipelines like these:
> * sender:
> SOMESRC ! vorbisenc ! gdppay ! queue leaky=downstream ! tcpserverssink
> host=192.168.42.222 port=20222
>
> * receiver:
> tcpclientsrc host=192.168.123.222 port=20222 ! queue leaky=upstream !
> gdpdepay ! vorbisdec  ! pulsesink
>
> I had added the leaky queues because the clients may take a few seconds
> before connecting and I want them to get the sound without much of a
> delay (1 second is ok), dropping what they missed before connecting if
> needed.
>
> I must be misunderstanding the way "queue" leaks because when it does I
> get choppy sound that doesn't go away until the client re-connects.
> I tried up/down stream without much luck. Or maybe it is not in the
> right location in the pipeline?

The leaky mode is dropping buffers when the queue is full (either from
the top of the queue or from the bottom). That is why you get choppy
audio. I can understand how the queue would help in this case to
mitigate the client connection latencies.

Stefan
> Thanks
> Antoine
> _______________________________________________
> 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: leaky queue: up or down? (choppy sound) [SOLVED?]

Antoine Martin
On 04/18/2011 08:53 PM, Stefan Kost wrote:

> hi,
>
> On 15.04.2011 15:59, Antoine Martin wrote:
>> Hi,
>>
>> I have some tcp sound pipelines like these:
>> * sender:
>> SOMESRC ! vorbisenc ! gdppay ! queue leaky=downstream ! tcpserverssink
>> host=192.168.42.222 port=20222
>>
>> * receiver:
>> tcpclientsrc host=192.168.123.222 port=20222 ! queue leaky=upstream !
>> gdpdepay ! vorbisdec  ! pulsesink
>>
>> I had added the leaky queues because the clients may take a few seconds
>> before connecting and I want them to get the sound without much of a
>> delay (1 second is ok), dropping what they missed before connecting if
>> needed.
>>
>> I must be misunderstanding the way "queue" leaks because when it does I
>> get choppy sound that doesn't go away until the client re-connects.
>> I tried up/down stream without much luck. Or maybe it is not in the
>> right location in the pipeline?
>
> The leaky mode is dropping buffers when the queue is full (either from
> the top of the queue or from the bottom). That is why you get choppy
> audio. I can understand how the queue would help in this case to
> mitigate the client connection latencies.
I thought that by using "leaky=downstream" before the tcpserversink I
could get a clean flow once the client starts pumping the data out.
But that's not the case.

I could be wrong since the choppy sound didn't always occur in my tests
- I could just be (un)lucky, but I think I have solved it by adding
another queue (non-leaky this time) after the leaky one:

SRC ! vorbisenc ! gdppay ! queue leaky=downstream ! queue ! tcpserverssink

Maybe this can help someone else.

Thanks
Antoine


>
> Stefan
>> Thanks
>> Antoine
>> _______________________________________________
>> 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

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