[gst-devel] RTP audio stream to filesink, issue with packet loss

Thorsten Brendt tbrendt at googlemail.com
Thu Jan 13 13:23:10 CET 2011


On Thu, Jan 13, 2011 at 10:46 AM, Tim-Philipp Müller <t.i.m at zen.co.uk> wrote:
> On Thu, 2011-01-13 at 03:10 +0100, Thorsten Brendt wrote:
>
>> > Tried adding an audiorate element?
>>
>> Do you mean a caps-filter element like this?:
>>
>> 'audio/x-raw-int, width=16, depth=16, rate=8000, endianness=1234,
>> signed=(boolean)true, channels=1'
>
> No, I meant an "audiorate" element, which is part of gst-plugins-base.
>
> Factory Details:
>  Long name:    Audio rate adjuster
>  Class:        Filter/Effect/Audio
>  Description:  Drops/duplicates/adjusts timestamps on audio samples to
> make a perfect stream

Ah, I should've looked at the gstreamer sources instead of searching
for "gstreamer audiorate"... lazy me!

Anyway, this was a great pointer!  Just adding audiorate to the
pipeline didn't help.  However, I could trace down the issue to the
jitter buffer: I needed to set do-lost=true to ask the jitter buffer
element to send packet-lost events downstream.  Now this combination
works just like I expected.  For the sake of completeness here's the
pipeline I used:

filesrc location=foobar.pcap ! pcapparse
  ! "application/x-rtp, payload=0, clock-rate=8000"
  ! gstrtpjitterbuffer do-lost=true ! rtppcmudepay ! mulawdec
  ! audiorate ! wavenc ! filesink location=foobar.wav

Tim, thank you very much for your help!

Cheers,
Thorsten




More information about the gstreamer-devel mailing list