<html><body>Hi,<br><br>yes, I saw that example before and it didn't worked either.<br><br>But I got something new (and disturbing) - I installed "python-gst-1.0-dbg" package, so I could analyze all debug messages and to my great surprise, it started working (both my example and sinkelement.py). It now works even if I uninstall all "*-dbg" packages which were installed with "python-gst-1.0-dbg".<br><br>But it really doesn't help. I don't want to install debug packages on production servers. I really need to know WHAT went wrong.. <br>And it seems to me it's probably some bug in gstreamer-python binding, so I should report it.<br><br>BTW - my machine is (was) freshly installed last week and I just started porting our software from gstreamer-0.10 to gstreamer-1.0, so there was no "interference" with previously installed sw..<br><br><br><p>---------- Původní zpráva ----------<br>Od: Thibault Saunier <tsaunier@gnome.org><br>Komu: Discussion of the development of and with GStreamer <gstreamer-devel@lists.freedesktop.org><br>Datum: 27. 10. 2015 19:15:25<br>Předmět: Re: creating custom sink in python fails</p><br><blockquote>Hello,<br><br>That should work, we have an example in gst-python that implement a<br>stupid simple sink in python[0]. It is based on GstElement instead of<br>BaseSink but it should probably be ported.<br><br>Regards,<br><br>Thibault.<br><br>[0] http://cgit.freedesktop.org/gstreamer/gst-python/tree/examples/plugins/python/sinkelement.py<br><br>On Tue, Oct 27, 2015 at 2:45 PM, Jan Spurný <JSpurny@seznam.cz> wrote:<br>> Hi,<br>><br>> I have problem with (probably) python binding for gstreamer-1.0 (1.4.4.0) - I was porting some code from gstreamer-0.10 (pygst) to new gstreamer-1.0 and I'm not able to get elements written in python to work. This is minimal working example (python2.7):<br>><br>> ---------------------------------------------------------------------<br>> import gi<br>> gi.require_version('Gst', '1.0')<br>> from gi.repository import Gst<br>> from gi.repository import GstBase<br>> from gi.repository import GObject<br>><br>> GObject.threads_init()<br>> Gst.init()<br>><br>> class MySink(GstBase.BaseSink):<br>>     __gstmetadata__ = ('My Sink', 'Sink', 'Sink', 'foo bar')<br>>     __gsttemplates__  = (<br>>         Gst.PadTemplate.new("sink",<br>>             Gst.PadDirection.SINK, Gst.PadPresence.ALWAYS,<br>>             Gst.caps_from_string('text/plain')),)<br>><br>> def plugin_init(plugin, userarg):<br>>     t = GObject.type_register(MySink)<br>>     Gst.Element.register(plugin, 'my_sink', 0, t)<br>>     return True<br>><br>> version = Gst.version()<br>> r = Gst.Plugin.register_static_full(<br>>     version[0], version[1], 'my_plugin', 'my plugin desc',<br>>     plugin_init, '1.0', 'Proprietary', 'abc', 'def', 'ghi', None)<br>><br>> s = MySink()<br>> ---------------------------------------------------------------------<br>><br>> and it throws a CRITICAL error:<br>><br>> ---------------------------------------------------------------------<br>> $ ./mysink.py<br>> (python2:18618): GStreamer-WARNING **: Element factory metadata for 'my_sink' has no valid long-name field<br>> ** (python2:18618): CRITICAL **: gst_base_sink_init: assertion 'pad_template != NULL' failedI'm not that worried about the warning, but that CRITICAL error means the element has no sinkpad and can't be linked.<br>> ---------------------------------------------------------------------<br>><br>> And worst thing - if I remove __gsttemplates__ and __gstmetadata__ completely, NOTHING changes. It seems to me that BaseSink.__init__() doesn't see it.<br>><br>> Does anyone have any idea what I'm doing wrong? Also I would greatly appreciate any documentation, examples or tutorials on python binding for gstreamer-1.0, because I wasn't able to find much<br>><br>> Thanks,<br>> Jan Spurny<br>><br>> _______________________________________________<br>> gstreamer-devel mailing list<br>> gstreamer-devel@lists.freedesktop.org<br>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel<br>_______________________________________________<br>gstreamer-devel mailing list<br>gstreamer-devel@lists.freedesktop.org<br>http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</blockquote></body></html>