diff options
author | Thibault Saunier <tsaunier@gnome.org> | 2015-10-27 22:19:19 +0100 |
---|---|---|
committer | Thibault Saunier <tsaunier@gnome.org> | 2015-10-28 15:27:42 +0100 |
commit | 7dffdb68642ad527c184022935f4424d5e002654 (patch) | |
tree | d9bdda01b0ab115ea8b31bbadebf883c7b6ee8fa /examples/plugins | |
parent | 1f26b4ad2be3da4c822e14fa13b0de386e62ab1b (diff) |
examples: Port the sink example to GstBaseSink
Also we now need to explicitly call Gst.init() from python bindings.
Diffstat (limited to 'examples/plugins')
-rw-r--r-- | examples/plugins/python/sinkelement.py | 39 |
1 files changed, 13 insertions, 26 deletions
diff --git a/examples/plugins/python/sinkelement.py b/examples/plugins/python/sinkelement.py index 639d9b8..2ec3608 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()) - - 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) + __gsttemplates__ = Gst.PadTemplate.new("sink", + Gst.PadDirection.SINK, + Gst.PadPresence.ALWAYS, + Gst.Caps.new_any()) - 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) |