我想要做的事很简单。启用视频混合器上的接收器底座:Gstreamer:如何在C中设置videomixer sink_0上限caps
/* Manually link the mixer, which has "Request" pads */
mixer_sink_pad_template = gst_element_class_get_pad_template(GST_ELEMENT_GET_CLASS(videomixer), "sink_%u");
mixer_sink_pad = gst_element_request_pad(videomixer, mixer_sink_pad_template, NULL, NULL);
sink_pad = gst_element_get_static_pad(videomixer, "src");
gst_pad_link(sink_pad, mixer_sink_pad);
然后设置alpha,xpos,ypos等。
g_object_set(videomixer, "sink_0::alpha", 0.5, NULL);
但是,这是行不通的。
(orig_code:22527): GLib-GObject-WARNING **: g_object_set_valist: object class 'GstVideoMixer2' has no property named 'sink_0::alpha'
我试图找出语法获得C代码来设置videomixer的sink_0 & sink_1抛光垫的性质。
有人可以指出它是多么容易吗?
您不能通过视频混合器设置接收器属性。尝试'GstPad * sink_0 = gst_element_get_static_pad(videomixer,“sink_0”);'然后'g_object_set(sink_0,“alpha”,0.5,NULL);' – Martin
Thanks Martin。如果我按照这种方式设置第一个,它似乎能够工作,即编译并且没有运行时间警告,但是(在这种情况下)xpos不会改变。如果我尝试设置第二个,它会给出警告或段错误(取决于第一个gst_element_get_static_pad的存在)。这让我想知道请求垫(如上所示)的代码是不正确的,因为它正在做类似的事情。欢迎提出建议。我将深入讨论请求板。 – Raydude