gpt4 book ai didi

c++ - gstreamer 访问动态创建的元素以添加焊盘探针

转载 作者:行者123 更新时间:2023-11-30 03:48:45 28 4
gpt4 key购买 nike

我需要访问动态创建的 glvideomixer 元素的子元素(它是合成器的派生)它有自己的 bin,它的子元素被创建到这个 bin 中。

如果我有指向 glvideomixer 元素和管道的指针,是否可以访问这些子元素?

是否存在某种“子元素创建”信号? - 我需要在子元素创建后立即访问它

我所做的所有这些都是为了能够向这些元素添加焊盘探针以分析流经它们的内容。

这就是我创建 glvideomixer 的方式:

GstElement *video_mixer = gst_element_factory_make ("glvideomixer", NULL); 
//.. wait for creating inner structure and ASAP get element and

这是管道的一部分,只显示了 glvideomixer 的 bin: enter image description here

我需要访问 mixer 元素(然后是其他具有自动生成名称的元素 - gluploadelement# glcolorconvertelement# ..)

最佳答案

您可以在 glvideomixer bin 上为 element-added 信号添加一个监听器:

void my_callback(GstBin *glvideomixer_bin, GstElement *element, 
gpointer user_data) {
//call gst_element_get_name and verify that it's "mixer"
}

g_signal_connect(GST_BIN(glvideomixer), "element-added",
G_CALLBACK(my_callback), my_data);

如果混合器元素碰巧立即创建,您也可以只使用 gst_bin_get_by_name:

GstElement* mixer = gst_bin_get_by_name(GST_BIN(video_mixer), "mixer")

然后在完成后取消引用它:

gst_object_unref(混合器);

http://gstreamer.freedesktop.org/data/doc/gstreamer/stable/gstreamer/html/GstBin.html#GstBin-element-added

关于c++ - gstreamer 访问动态创建的元素以添加焊盘探针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33016340/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com