<div dir="ltr">I'm using the Speex audio codec over RTP to deliver near-realtime audio and have had good results except under the following condition.  I'm using the iOS GStreamer development library with the following pipeline:<div>
<br></div><div>Client:</div><div>udpsrc port=16500 ! application/x-rtp, media=(string)audio, clock-rate=(int)8000, encoding-name=(string)SPEEX, encoding-params=(string)1, payload=(int)110 ! rtpspeexdepay ! speexdec ! audioconvert ! autoaudiosink<br>
</div><div><br></div><div><br></div><div>Server:</div><div><span style="font-size:13px;font-family:Arial">jackaudiosrc ! audioconvert ! audioresample ! 'audio/x-raw-int,rate=8000,width=16,channels=1' ! speexenc ! rtpspeexpay ! udpsink host=224.0.0.1 port=16500</span> <br>
</div><div><br></div><div><br></div><div>I modified the iOS GStreamer 'Tutorial 2' app, which uses the following function calls to pause & play the stream:</div><div><br></div><div><div>    [gst_backend pause];</div>
</div><div><br></div><div><div>    [gst_backend play];</div></div><div><br></div><div>The problem is that the client application buffers the audio while paused.  I'd like the client application to discard all packets received while paused, and resume from the current timestamp.</div>
<div><br></div><div>This worked when using raw PCM audio, but does not work with the Speex codec.  Are there any suggestions for how to change the pipeline and/or application?</div><div><br></div><div>Thanks,</div><div><br>
</div><div>--Scott Kidder</div></div>