2016-04-11 12 views
0

Ich habe diese gst-Start Parameter, die das tun, was ich will:GStreamer udp-Quelle PCM- Wiedergabe

gst-launch-1.0.exe udpsrc port=22122 ! audio/x-raw,format=S16LE,rate=16000,channels=1 ! autoaudiosink 

Allerdings kann ich es nicht in Code umwandeln. Ich versuche, die folgende:

GstElement *pipeline = gst_pipeline_new("audio-player"); 

GstBus *bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline)); 
guint bus_watch_id = gst_bus_add_watch(bus, bus_call, m_gstMainLoop); 
gst_object_unref(bus); 

GstElement *source = gst_element_factory_make("udpsrc", "udpsrc0"); 
GstElement *sink = gst_element_factory_make("autoaudiosink", "autoaudiosink0"); 

g_object_set(G_OBJECT(source), "port", 7200, "buffer-size", 1000000, NULL); 
gst_bin_add_many(GST_BIN(pipeline), source, sink, NULL); 

GstCaps *caps = gst_caps_new_simple("audio/x-raw", 
            "format", G_TYPE_STRING, "S16LE", 
            "layout", G_TYPE_STRING, "INTERLEAVED", 
            "rate",  G_TYPE_INT,  16000, 
            "channels", G_TYPE_INT,  1, 
            NULL); 

gst_element_link_filtered(source, sink, caps); 
gst_caps_unref(caps); 

gst_element_set_state(pipeline, GST_STATE_PLAYING); 
g_main_loop_run(m_gstMainLoop); 

In dem Dot-Diagramm sie fast gleich aussehen, aber nicht ganz, aber ich kann nicht herausfinden, was ich fehle.

Antwort

0

Nicht sicher, warum, aber es funktioniert, wenn ich INTERLEAVED weglassen (was Kleinbuchstaben sein sollte, wenn eingegeben) und ich habe auch verpasst, dass ich die falsche Portnummer eingegeben habe (doh!).

+0

naja, zumindest hast du das herausgefunden :) kannst du diese Frage schließen, da es niemandem weiterhilft .. aber das ist zu deiner Überlegung - vielleicht ist gerade dieser Teil über interleaved hilfreich .. – nayana

+0

wahrscheinlich eine gute Idee , aber ich konnte nicht herausfinden, wie ich die Frage beenden sollte. Ich habe das nur als Antwort markiert. – Vanvid

+0

vielleicht kann die info über interleaved für jemanden verwendet werden .. aber auf jeden Fall schließen Sie die Frage, indem Sie auf hellgrau "schließen" Sie unter dem Text der Frage, rechts unter dem blauen Tag "gstreamer" .. neben Optionen "teilen "und" bearbeiten ".. – nayana