gstreamer通过名字获得鬼垫元素的正确方法

时间:2016-12-07 10:45:32

标签: gstreamer gstreamer-1.0

GST 1.11,

我已经创建了一个鬼垫并确认它正在通过以下工作

gchar *ghost_pad_1_name = NULL;
ghost_pad_1_name = "myGhostPad'
ghost_pad_1 = gst_ghost_pad_new (ghost_pad_1_name, pad_src_1);

if(GST_PAD_DIRECTION(ghost_pad_1) == GST_PAD_SRC){
    printf("Ghost is SRC -> correct\n"); // Correct
    }  

printf("Ghost Pad Name = %s\n",GST_ELEMENT_NAME(ghost_pad_1)); // myGhostPad

然而,尝试通过使用以下方法获取元素返回NULL

GstElement *TestGhostPad = gst_bin_get_by_name (ghost_pad_1_name);
if (!TestGhostPad){
    printf("Ghost Pad is NULL\n"); // This is called
}
if (TestGhostPad){
    printf("Ghost Pad is NOT NULL\n");
}

我是否正确使用此功能?是否有另一种方法可以通过name获取Ghost Pad。

感谢艺术

1 个答案:

答案 0 :(得分:1)

GstElment* element;
GstElement* element2;
GstPad* GhostPad;

GhostPad = gst_element_get_static_pad(element, "sink");
gst_element_add_pad(element2, gst_ghost_pad_new("videosink", GhostPad));
gst_object_unref(GST_OBJECT(GhostPad));

GstPad* sinkpad = gst_element_get_static_pad(element2,"videosink");