'Can't record audio fast enough' issue - On iOS device

Antonis Tsakiridis atsakirid at gmail.com
Sat Jan 24 12:55:24 PST 2015


Hello,

I'm using an iPhone 5 to send and receive audio using RTP over UDP. The
problem is that I can't hear anything in any direction. I get:

0:00:27.758603000 [333m 1490[00m 0x16a9b460 [33;01mWARN   [00m [00m
 audiobasesrc gstaudiobasesrc.c:858:GstFlowReturn
gst_audio_base_src_create(GstBaseSrc *, guint64, guint, GstBuffer
**):<autoaudiosrc0-actual-src-osxaudi>[00m create DISCONT of 1600 samples
at sample 3680
0:00:27.758815000 [333m 1490[00m 0x16a9b460 [33;01mWARN   [00m [00m
 audiobasesrc gstaudiobasesrc.c:863:GstFlowReturn
gst_audio_base_src_create(GstBaseSrc *, guint64, guint, GstBuffer
**):<autoaudiosrc0-actual-src-osxaudi>[00m warning: Can't record audio fast
enough
0:00:27.758919000 [333m 1490[00m 0x16a9b460 [33;01mWARN   [00m [00m
 audiobasesrc gstaudiobasesrc.c:863:GstFlowReturn
gst_audio_base_src_create(GstBaseSrc *, guint64, guint, GstBuffer
**):<autoaudiosrc0-actual-src-osxaudi>[00m warning: Dropped 1600 samples.
This is most likely because downstream can't keep up and is consuming
samples too slowly.

IMPORTANT NOTE: If I use only the receiving part of the pipeline it works
fine (please see P.S.1). Same happens if I use only the sending part of the
pipeline (please see P.S.2).

Code:

   ...
   gst_debug_set_threshold_from_string("2,*audio*:3", TRUE);
   // Bidirectional
   self->sm_pipeline = gst_parse_launch("udpsrc name=udp-src
caps=\"application/x-rtp,media=audio,clock-rate=8000,encoding-name=PCMU\" !
rtppcmudepay ! mulawdec ! audioconvert ! audioresample ! autoaudiosink
autoaudiosrc ! audioconvert ! audioresample ! mulawenc ! rtppcmupay !
udpsink name=udp-sink async=false", &error);

   if (error) {
       ...
   }

   gst_element_set_state (self->sm_pipeline, GST_STATE_PLAYING);
   ...

Any ideas?

Thank you,
Antonis

P.S.1. Pipeline the works (only sending):

    self->sm_pipeline = gst_parse_launch("autoaudiosrc ! audioconvert !
audioresample ! mulawenc ! rtppcmupay ! udpsink name=udp-sink async=false",
&error);

P.S.2. Pipeline that works (only receiving):

    self->sm_pipeline = gst_parse_launch("udpsrc name=udp-src
caps=\"application/x-rtp,clock-rate=8000,encoding-name=PCMU\" !
rtppcmudepay ! mulawdec ! audioconvert ! audioresample ! autoaudiosink",
&error);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20150124/ab1319b8/attachment.html>


More information about the gstreamer-devel mailing list