Internal data flow error for iOS - trying to retrieve audio from the iPhone mic and send it over UDP

Antonis Tsakiridis atsakirid at gmail.com
Sun Jan 18 11:03:16 PST 2015


The pipeline looks like this (check in the end for the code):

autoaudiosrc (osxaudiosrc, really) > rtppcmupay > mulawenc > udpsink

When I start the pipeline I get from the gstreamer bus: 'Internal data flow
error'. Here is the deug log (i.e. gst_debug_set_threshold_from_string(
"2,*audio*:4", TRUE)):

0:00:07.649044000 [336m  389[00m 0x15c72640 [33;01mWARN   [00m [00m
    basesrc gstbasesrc.c:2933:void gst_base_src_loop(GstPad
*):<audiosrc-actual-src-osxaudi>[00m error: Internal data flow error.
0:00:07.649116000 [336m  389[00m 0x15c72640 [33;01mWARN   [00m [00m
    basesrc gstbasesrc.c:2933:void gst_base_src_loop(GstPad
*):<audiosrc-actual-src-osxaudi>[00m error: streaming task paused, reason
not-negotiated (-4)
0:00:07.649407000 [336m  389[00m 0x15c72640 [36mINFO   [00m [00m
 audiobasesrc gstaudiobasesrc.c:1218:gboolean
gst_audio_base_src_post_message(GstElement *, GstMessage
*):<audiosrc-actual-src-osxaudi>[00m subclass posted error
sofsip> 0:00:07.652848000 [336m  389[00m 0x15c72640 [33;01mWARN   [00m [00m
            basesrc gstbasesrc.c:2933:void gst_base_src_loop(GstPad
*):<audiosrc-actual-src-osxaudi>[00m error: Internal data flow error.
0:00:07.656401000 [336m  389[00m 0x15c72640 [33;01mWARN   [00m [00m
    basesrc gstbasesrc.c:2933:void gst_base_src_loop(GstPad
*):<audiosrc-actual-src-osxaudi>[00m error: streaming task paused, reason
not-negotiated (-4)
0:00:07.656539000 [336m  389[00m 0x15c72640 [36mINFO   [00m [00m
 audiobasesrc gstaudiobasesrc.c:1218:gboolean
gst_audio_base_src_post_message(GstElement *, GstMessage
*):<audiosrc-actual-src-osxaudi>[00m subclass posted error

Notice that I'm using OSX 7.1 and iphone 5 and I have already requested
record permission from the iOS audio facilities before trying to read from
the mic.

Also, notice that the same code works fine in Linux (with ALSA off course
instead of osxaudiosrc) for the microphone.

Any hints?

Best regards,
Antonis

Code:

    ...
    src = gst_element_factory_make ("autoaudiosrc", "audiosrc");
    assert(src != NULL);

    // notice that factories have already been 'found' and assigned
previously elsewhere
    codec = gst_element_factory_create (factories->encoder, "codec");
    assert(codec != NULL);
    payload = gst_element_factory_create (factories->payloader, "payload");
    assert(payload != NULL);

    udpsink = gst_element_factory_make ("udpsink", "sink");
    assert (udpsink != NULL);

    g_object_set (G_OBJECT (udpsink), "async", FALSE, NULL);

    gst_bin_add_many (GST_BIN (pipeline), src, codec, payload, udpsink,
NULL);
    gst_element_link_many (src, codec, payload, udpsink, NULL);

    gst_element_set_state (pipeline, GST_STATE_PLAYING);

    ...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20150118/a09e613f/attachment-0001.html>


More information about the gstreamer-devel mailing list