Was ich tun möchte, ist einfach. Aktivieren Sie die Senken-Pads im Videomixer:Gstreamer: Wie setze ich videomixer sink_0 caps in C
/* 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);
Und dann legen Sie die Alpha, XPOS, YPOS, z.
g_object_set(videomixer, "sink_0::alpha", 0.5, NULL);
Aber das funktioniert nicht.
(orig_code:22527): GLib-GObject-WARNING **: g_object_set_valist: object class 'GstVideoMixer2' has no property named 'sink_0::alpha'
Ich versuche, die Syntax für das Erhalten der C-Code, um herauszufinden, Videomixer der sink_0 & sink_1 Pad Eigenschaften einzustellen.
Kann jemand darauf hinweisen, wie einfach es ist?
Sie können die Sink-Eigenschaft nicht über den Videomixer festlegen. Versuchen Sie 'GstPad * sink_0 = gst_element_get_static_pad (videomixer," sink_0 ");' dann 'g_object_set (sink_0," alpha ", 0.5, NULL);' – Martin
Danke Martin. Wenn ich die erste so einstelle, scheint es zu funktionieren, dh kompiliert und keine Laufzeitwarnungen, aber (in diesem Fall) ändert sich die xpos nicht. Wenn ich versuche, die Sekunde zu setzen, gibt es eine Warnung oder segfaults (abhängig von der Anwesenheit des ersten gst_element_get_static_pad). Das lässt mich fragen, ob der Code, der die Pads (oben gezeigt) anfordert, falsch ist, da er etwas Ähnliches macht. Vorschläge sind willkommen. Ich werde die Request-Pads untersuchen. – Raydude