У меня есть конвейер, написанный в программу на языке C, которая перенаправляет видеопоток от stdin на несколько клиентов UDP. Я хочу, чтобы эти клиенты добавлялись или удалялись динамически, поэтому во время компиляции невозможно определить, какие из них и сколько их будет. Это мой трубопровод (если добавить фиксированный параметр clients
это работает отлично):GStreamer - Вывести сигнал на элемент
fdsrc name=origin \
! video/x-h264,width=320,height=240,framerate=30/1,profile=baseline,stream-format=avc,alignment=au \
! h264parse \
! rtph264pay \
config-interval=1 \
pt=96 \
! multiudpsink name=dest \
sync=false
Согласно документации GStreamer, что я могу достигнуть его, посылая сигнал для того, чтобы добавить или удалить клиент динамически. В этом случае это должно быть add
signal.
Но я не могу найти информацию о , посылая сигнал элементу (в данном случае, к элементу multiudpsink
). Легко получить ссылку на мой элемент:
GstElement *sink = gst_bin_get_by_name(GST_BIN(pipeline), "dest");
/* TODO: send a signal to add a client */
g_object_unref(sink);
Но как я могу испустить сигнал этому элементу?