ビデオストリームをstdinから複数のUDPクライアントにリダイレクトするCプログラムにパイプラインを書きました。これらのクライアントを動的に追加または削除したいので、コンパイル時にそれらのクライアントとその数を定義することはできません。これは私のパイプライン(Iは固定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);
しかし、今私はどのようにその要素に信号を放射することができますか?