Я пытаюсь использовать GStreamer webRT C на windows, используя webrtcbin
со следующим кодом (частично):
...
gchar* descr = g_strdup(
"webrtcbin name=webrtcbin stun-server=stun://stun.l.google.com:19302 "
"videotestsrc ! videorate ! video/x-raw,width=640,height=360,framerate=15/1 ! videoconvert ! queue max-size-buffers=1 ! x264enc bitrate=600 speed-preset=ultrafast tune=zerolatency key-int-max=15 ! video/x-h264,profile=constrained-baseline ! queue max-size-time=100000000 ! h264parse ! "
"rtph264pay config-interval=-1 name=payloader ! "
"application/x-rtp,media=video,encoding-name=H264,payload=96 !"
" webrtcbin. "
);
pipeline = gst_parse_launch(descr, &error);
...
//---- BUS
guint bus_watch_id;
bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline));
bus_watch_id = gst_bus_add_watch(bus, my_bus_callback, NULL);
gst_object_unref(bus);
//---- webRTC
GstWebRTCRTPTransceiver* trans;
GArray* transceivers;
webrtcbin = gst_bin_get_by_name(GST_BIN(pipeline), "webrtcbin");
g_assert(webrtcbin != NULL);
g_signal_emit_by_name(webrtcbin, "get-transceivers", &transceivers);
g_assert(transceivers != NULL && transceivers->len > 0);
trans = g_array_index(transceivers, GstWebRTCRTPTransceiver*, 0);
trans->direction = GST_WEBRTC_RTP_TRANSCEIVER_DIRECTION_SENDONLY;
...
Однако, когда программа запускается. На консоли отображается следующая ошибка:
GLib-GObject-WARNING **: D:\Programs\vcpkg\buildtrees\glib\src\2.52.3-34a15219ec\gobject\gsignal.c:3492: signal name 'get-transceivers' is invalid for instance '000001A62557B0F0' of type '(NULL)'
**
ERROR:D:\gst-test\src\main.cpp:98:TestPipeline: assertion failed: (transceivers != NULL && transceivers->len > 0)