Re: [Vala] GStreamer signal connection in Vala




Fabian Deutsch <fabian deutsch    > writes:


Hi,

Am Montag, den 05.03.2012, 20:12 +0000 schrieb Thomas:
I am new to Vala. I am trying to develop a simple application using
Gstreamer and Vala, but I fail with the connection of signlas defined
within the Gstreamer Element cairoooverlay

(http://developer.gnome.org/gst-plugins-libs/unstable/gst-plugins-good-plugins-cairooverlay.html).
What i am Trying to do ist the following:

this.pipeline =  (Pipeline)Gst.parse_launch("... cairooverlay
name=overlay ...");
...
Element ov = this.pipeline.get_by_name("overlay");
ov.connect("caps_changed", this.caps_changed_cb);

Just one hint about Gstreamer Elements: Use Vala's dynamic keyword.
Using this keyword you can access properties and signals of the lements
without using the getters or connect methods.

dynamic Element ov = ...
ov.name = "overlay";
ov.caps_changed.connect (this.caps_changed_cb);

Sorry that I can't tell you the right sinal, but the docs might help you
here (or gst-inspect cairooverlay)

Greetings
fabian

The code compiles fine, but I get the runtime warning and the signal
is not connected.

GLib-GObject-WARNING **: g_object_connect: invalid signal spec "caps_changed"

What is standard way to connect to this signal with a proper callback
in Vala? The function to connect the signal from C is
g_signal_connect.

Cheers
Thomas

_______________________________________________
vala-list mailing list
vala-list    
http://mail.gnome.org/mailman/listinfo/vala-list


Hi,

this solved the problem. I was looking everywhere to find a solution. Thanks a
lot. The correct way to achive what i wanted was:

this.pipeline =  (Pipeline)Gst.parse_launch("... cairooverlay
name=overlay ...");
...
dynamic Element ov = this.pipeline.get_by_name("overlay");
ov.caps_changed.connect(this.caps_changed_cb);
...
private void caps_changed_cb(Element element, Caps caps){
..
}

Greetings
Thomas






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]