Hi Dev, I know that this is not really a gstreamer specific question, rather GObject, so I read some GObject descriptions about finalize, but I would like to ask it nevertheless. How many times is the finalize function called during the life of a plugin? It is called only once at the destruction of the Class as the pair of the class_init? Is it a problem if I have some pointers as members of my element, but I don't overwrite the finalize function? Or is it called at the destruction of an element too? Thanks! Zoltan Seress ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
A plugin is an instant of a gstclass, i.e. gstobject. The finalize function is called when the plugin is destructed, not class is destructed. If you want to free the pointers or other resources of your gstplug-in, you can do it in state_change function. It you want to release resouces of an object, not gstplug-in, you have to write the code in finalize function.
2008/11/28 Zoltan Seress <[hidden email]>
------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
In reply to this post by Zoltan Seress
Hi, gstreamer-devel:
1. The `finalize' function will only be called once. The `dispose' function can be called many times. 2. Usually we use `g_object_unref' or `gst_object_unref'(in gstreamer) to release the object. If the ref_count of this object reaches zero, the `dispose' and `finalize' function will be called(dispose will be called first and you can still ref the object in this function -- in that way, the finalize function will not be called, that's why you can `dispose' many times but only `finalize' once). Refer to the source code of `g_object_unref' for more details. 3. If you have pointers in your element, and I suppose you wanna free the objects which these pointers point to, right? If so, you should call `g_object_unref' to these pointers in your element's finalize function. Eric Zhang 2008/11/28 Zoltan Seress <[hidden email]>
------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Thanks the info, guys! I guess I got the point and I wrote a finalize (for my objects) and a change_state (for my plugin) function.
Cheers, -- Zoltan Seress ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |