I have a simple sh program that works
#!/bin/sh
gst-launch-1.0 -v pulsesrc device=alsa_input.usb-Sensoray_Co.__Inc._Sensoray_Model_2263_551656-04.analog-stereo ! queue ! audioconvert ! audioresample ! audio/x-raw,rate=22000,channels=1 !vrtpL24pay ! udpsink host=127.0.0.1 port=5000
And a simple C code that does not
audiod "pulsesrc device=alsa_input.usb-Sensoray_Co.__Inc._Sensoray_Model_2263_551656-04.analog-stereo ! queue ! audioconvert ! audioresample ! audio/x-raw,rate=22000,channels=1 ! rtpL24pay ! udpsink host=127.0.0.1 port=5000"
(I show the complete code just in case
invoked as (Not from a shell, argv[1] is the complete pipeline (exactly as the sh)
#include <gst/gst.h>
int main (int argc, char *argv[])
{
GstElement *pipeline;
GstBus *bus;
GstMessage *msg;
// usage
if (argc < 2) {
g_printerr ("usage: audiod pipeline\n");
exit (1);
}
/* Initialize GStreamer */
gst_init (&argc, &argv);
/* Build the pipeline */
pipeline = gst_parse_launch (argv[1], NULL);
/* Start playing */
gst_element_set_state (pipeline, GST_STATE_PLAYING);
/* Wait until error or EOS */
bus = gst_element_get_bus (pipeline);
msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR | GST_MESSAGE_EOS);
/* See next tutorial for proper error message handling/parsing */
if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR) {
g_printerr ("An error occurred! Re-run with the GST_DEBUG=*:WARN environment variable set for more details.\n");
}
/* Free resources */
gst_message_unref (msg);
gst_object_unref (bus);
gst_element_set_state (pipeline, GST_STATE_NULL);
gst_object_unref (pipeline);
return 0;
}
Is there something magical, as hinted by google, about udpsrc and localhost ?