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

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

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

Tiago Katcipis
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



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