Support for writting Elements (plugins) in GStreamermm



Hello all

I'm using GStreamer with many specialized plugins for my purposes. My project is written in C++ and I'd be glad to have C++ benefits (like Glib::RefPtr) in GStreamer. However according to a little research I've made (including this[1] answer, and my answerless question [2]) gstreamermm does not support plugin creation.

Therefore I've decided to "fix" gstreamemm in order to be able to derive my own elements from gstreamermm classes (Gst::Element, Gst::SrcBase, etc.) in the way, that gstreamer can use them (e.g. create them with the factory). I used suggestions from [1] but it didn't solve all my problems (especially doing Gst::ElementFactory::register_element on C++ types that don't provide real, autonomous GType). Finally I obtained a solution that works on some simple examples. However, as I don't know mm-wrappers internal mechanisms very well, the way I've chosen may be wrong from the design point of view. Nevertheless, I decided to publish my code. It is available at github [3] as a branch from gstreamermm repository. If you were interested in making any use of my code, you are welcome. Also, I'm open to any suggestions that could make my solution more useful.

The simplest working example is available here [4] (sorry for poor code formatting, I'll need to set-up my IDE for gstreamermm coding style).

[1]
https://mail.gnome.org/archives/gtkmm-list/2012-July/msg00073.html
[2]
http://stackoverflow.com/questions/9609201/gstreamermm-creating-a-new-element-type-in-plugin-by-deriving-from-gstele
[3] https://github.com/peper0/gstreamermm-plugins
[4] https://github.com/peper0/gstreamermm-plugins/blob/gstpluginsmm/tests/test-plugin-register.cc

--
Tomasz


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