GNOME Bugzilla – Bug 772853
example of python identity element for 1.0
Last modified: 2016-10-31 14:35:26 UTC
Right now you only have an example for a sink in: https://cgit.freedesktop.org/gstreamer/gst-python/tree/examples/plugins/python Here is one for a transform, a simple identity (if of interest): #!/usr/bin/env python # -*- Mode: Python -*- # vi:si:et:sw=4:sts=4:ts=4 import gi gi.require_version('GstBase', '1.0') from gi.repository import Gst, GObject, GstBase Gst.init(None) # # Simple Identity element created entirely in python # class Identity(GstBase.BaseTransform): __gstmetadata__ = ('Identity Python','Transform', \ 'Simple identity element written in python', 'Marianna S. Buschle') __gsttemplates__ = (Gst.PadTemplate.new("src", Gst.PadDirection.SRC, Gst.PadPresence.ALWAYS, Gst.Caps.new_any()), Gst.PadTemplate.new("sink", Gst.PadDirection.SINK, Gst.PadPresence.ALWAYS, Gst.Caps.new_any())) def do_transform_ip(self, buffer): Gst.info("timestamp(buffer):%s" % (Gst.TIME_ARGS(buffer.pts))) return Gst.FlowReturn.OK GObject.type_register(Identity) __gstelementfactory__ = ("identity_py", Gst.Rank.NONE, Identity)
Seems interesting but keep in mind that the Python GIL will generally cause bad performance whenever you hook into the streaming threads (like here).
Could you prepare a `git format` patch so we can add it to the example directory? Thanks
Created attachment 337814 [details] [review] patch adding the identity example