diff --git a/examples/plugins/python/sinkelement.py b/examples/plugins/python/sinkelement.py index 639d9b8fc4..2ec360880b 100644 --- a/examples/plugins/python/sinkelement.py +++ b/examples/plugins/python/sinkelement.py @@ -11,42 +11,29 @@ # in 20 lines in python and place into the gstreamer registry # so it can be autoplugged or used from parse_launch. # -# Run this script with GST_DEBUG=python:5 to see the debug -# messages +# You can run the example from the source doing from gst-python/: +# +# $ export GST_PLUGIN_PATH=$GST_PLUGIN_PATH:$PWD/plugin:$PWD/examples/plugins +# $ GST_DEBUG=python:4 gst-launch-1.0 fakesrc num-buffers=10 ! mysink -from gi.repository import Gst, GObject +from gi.repository import Gst, GObject, GstBase +Gst.init(None) # # Simple Sink element created entirely in python # -class MySink(Gst.Element): +class MySink(GstBase.BaseSink): __gstmetadata__ = ('CustomSink','Sink', \ 'Custom test sink element', 'Edward Hervey') - __gsttemplates__ = Gst.PadTemplate.new ("sinkpadtemplate", - Gst.PadDirection.SINK, - Gst.PadPresence.ALWAYS, - Gst.Caps.new_any()) + __gsttemplates__ = Gst.PadTemplate.new("sink", + Gst.PadDirection.SINK, + Gst.PadPresence.ALWAYS, + Gst.Caps.new_any()) - def __init__(self): - Gst.Element.__init__(self) - Gst.info('creating sinkpad') - self.sinkpad = Gst.Pad.new_from_template(self.__gsttemplates__, "sink") - Gst.info('adding sinkpad to self') - self.add_pad(self.sinkpad) - - Gst.info('setting chain/event functions') - self.sinkpad.set_chain_function(self.chainfunc) - self.sinkpad.set_event_function(self.eventfunc) - st = Gst.Structure.from_string("yes,fps=1/2")[0] - - def chainfunc(self, pad, buffer): - Gst.info("%s timestamp(buffer):%d" % (pad, buffer.pts)) + def do_render(self, buffer): + Gst.info("timestamp(buffer):%s" % (Gst.TIME_ARGS(buffer.pts))) return Gst.FlowReturn.OK - def eventfunc(self, pad, event): - Gst.info("%s event:%r" % (pad, event.type)) - return True - GObject.type_register(MySink) __gstelementfactory__ = ("mysink", Gst.Rank.NONE, MySink)