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.
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
wahrscheinlich eine gute Idee , aber ich konnte nicht herausfinden, wie ich die Frage beenden sollte. Ich habe das nur als Antwort markiert. – Vanvid
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