gstrtpjitterbuffer locks when mode=buffer and drop-on-latency=1

Tiago Katcipis katcipis at inf.ufsc.br
Tue Mar 22 09:52:30 PDT 2011


Hi,

I'm doing some tests with gstrtpjitterbuffer, basically generating audio
with audiotestsrc and sending it using rtp (ptime must be 20ms on my tests):

gst-launch -m audiotestsrc is_live=true ! alawenc !
audio/x-alaw,rate=8000,channels=1 ! rtppcmapay min-ptime=20000000
max-ptime=20000000 ! udpsink host=127.0.0.1 port=5000

And on the receive side i have an application that does some measurements
using pad probing on the gstrtpjitterbuffer element. Everything was ok until
i started to set the gstrtpjitterbuffer "mode" property to "buffer". I got a
little audio and them silence. First thing i thought was "my test must be
broken". But when i started to debug to find out what i was doing wrong i
found that what was making my test getting locked was:

g_object_set(G_OBJECT (jitter_buffer), "drop-on-latency", TRUE, NULL);

so i tried to reproduce the problem using gst-launch and it really locks,
(the "buffering"  message gets locked on 71%). If i don't set
drop-on-latency=1, this don't happens. Or if the mode is not buffer, it
works with drop-on-latency=1.

Basically:


works: gst-launch udpsrc port=5000 caps=application/x-rtp,clock-rate=8000 !
gstrtpptdemux ! gstrtpjitterbuffer mode=none drop-on-latency=1 ! decodebin !
autoaudiosink

works: gst-launch udpsrc port=5000 caps=application/x-rtp,clock-rate=8000 !
gstrtpptdemux ! gstrtpjitterbuffer mode=none drop-on-latency=0 ! decodebin !
autoaudiosink

works: gst-launch udpsrc port=5000 caps=application/x-rtp,clock-rate=8000 !
gstrtpptdemux ! gstrtpjitterbuffer mode=slave drop-on-latency=1 ! decodebin
! autoaudiosink

works: gst-launch udpsrc port=5000 caps=application/x-rtp,clock-rate=8000 !
gstrtpptdemux ! gstrtpjitterbuffer mode=slave drop-on-latency=0 ! decodebin
! autoaudiosink

works: gst-launch udpsrc port=5000 caps=application/x-rtp,clock-rate=8000 !
gstrtpptdemux ! gstrtpjitterbuffer mode=buffer drop-on-latency=0 ! decodebin
! autoaudiosink

locks: gst-launch udpsrc port=5000 caps=application/x-rtp,clock-rate=8000 !
gstrtpptdemux ! gstrtpjitterbuffer mode=buffer drop-on-latency=1 ! decodebin
! autoaudiosink


i didn't find anything saying that the drop-on-latency property must not be
set to true when the buffering mode is buffer, so i thought this must be a
bug (it is pretty simple to reproduce and the pipelines are quite simple
too).

Is this a bug or i did something terribly wrong ?

I'm working on Ubuntu 10.10/Gstreamer 0.10.30.

Best regards,
Tiago Katcipis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20110322/6e7303ea/attachment-0001.htm>


More information about the gstreamer-devel mailing list