moving
authorThomas Vander Stichele <thomas@apestaart.org>
Thu, 4 Mar 2004 12:01:23 +0000 (12:01 +0000)
committerThomas Vander Stichele <thomas@apestaart.org>
Thu, 4 Mar 2004 12:01:23 +0000 (12:01 +0000)
Original commit message from CVS:
moving

13 files changed:
examples/gstreamer/.gitignore [deleted file]
examples/gstreamer/Makefile.am [deleted file]
examples/gstreamer/bps.py [deleted file]
examples/gstreamer/cp.py [deleted file]
examples/gstreamer/dvdplay.py [deleted file]
examples/gstreamer/f2f.py [deleted file]
examples/gstreamer/filesrc.py [deleted file]
examples/gstreamer/identity.py [deleted file]
examples/gstreamer/ilat.py [deleted file]
examples/gstreamer/lat.py [deleted file]
examples/gstreamer/player.py [deleted file]
examples/gstreamer/rot13.py [deleted file]
examples/gstreamer/vorbisplay.py [deleted file]

diff --git a/examples/gstreamer/.gitignore b/examples/gstreamer/.gitignore
deleted file mode 100644 (file)
index f25164d..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Makefile.in
-Makefile
-*.pyc
-*.pyo
-*.swp
diff --git a/examples/gstreamer/Makefile.am b/examples/gstreamer/Makefile.am
deleted file mode 100644 (file)
index ffdfebb..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-EXTRA_DIST = \
-       bps.py \
-       cp.py \
-       dvdplay.py \
-       f2f.py \
-       identity.py \
-       ilat.py \
-       lat.py \
-       rot13.py \
-       vorbisplay.py
diff --git a/examples/gstreamer/bps.py b/examples/gstreamer/bps.py
deleted file mode 100755 (executable)
index e7e6f33..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/usr/bin/env python
-#
-# gst-python
-# Copyright (C) 2003 David I. Lehn
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-# 
-# Author: David I. Lehn <dlehn@users.sourceforge.net>
-#
-
-import sys
-import time
-import gobject
-import gst
-import gtk
-
-class BPS(object):
-    def __init__(self):
-        self.buffers = 0
-        self.start = 0
-
-    def done(self):
-        end = time.time()
-        dt = end - self.start
-        bps = self.buffers/dt
-        spb = dt/self.buffers
-        print '\t%d buffers / %fs\t= %f bps\t= %f spb' % (self.buffers, dt, bps, spb)
-
-    def eos(self, sink):
-        self.done()
-        if self.method in ('gtk', 'c'):
-            gst.main_quit()
-
-    def fakesrc(self, buffers):
-        src = gst.Element('fakesrc','src')
-        src.set_property('silent', 1)
-        src.set_property('num_buffers', buffers)
-        return src
-
-    def fakesink(self):
-        sink = gst.Element('fakesink','sink')
-        sink.set_property('silent', 1)
-        return sink
-
-    def build_pipeline(self, buffers):
-        pipeline = gst.Pipeline('pipeline')
-
-        src = self.fakesrc(buffers)
-        pipeline.add(src)
-        sink = self.fakesink()
-        pipeline.add(sink)
-        sink.connect('eos', self.eos)
-        src.link(sink)
-
-        return pipeline
-
-    def notify(self, sender, obj, arg):
-        prop = obj.get_property(arg.name)
-        print 'notify', sender, arg.name, prop
-        print prop
-
-    def idle(self, pipeline):
-        return pipeline.iterate()
-
-    def test(self, method):
-        print '%s:' % (method,),
-        self.method = method
-        
-        self.pipeline.set_state(gst.STATE_PLAYING)
-
-        if method == 'py':
-            self.start = time.time()
-            while self.pipeline.iterate():
-                pass
-        elif method == 'c':
-            self.start = time.time()
-            self.iter_id = gst.add_iterate_bin(self.pipeline)
-            gst.main()
-        #elif method == 'gst':
-        #    self.start = time.time()
-        #    gtk.idle_add(self.idle, self.pipeline)
-        #    gtk.main()
-        elif method == 'all':
-            self.start = time.time()
-            iterate_bin_all(self.pipeline)
-
-        self.pipeline.set_state(gst.STATE_NULL)
-
-    def run(self, buffers, methods):
-        self.buffers = buffers
-        
-        print '# Testing buffer processing rate for "fakesrc ! fakesink"'
-        #print '# gst = gtk idle loop function in python'
-        print '# c = gtk idle loop function in C'
-        print '# py = full iterate loop in python'
-        print '# all = full iterate loop in C'
-        print '# bps = buffers per second'
-        print '# spb = seconds per buffer'
-        
-        self.pipeline = self.build_pipeline(buffers)
-        assert self.pipeline
-        #self.pipeline.connect('deep-notify', self.notify)
-        
-        map(self.test, methods)
-    
-def main(args):
-    "GStreamer Buffers-Per-Second tester"
-
-    if len(args) < 2:
-        print 'usage: %s buffers [method method ...]' % args[0]
-        return 1
-    
-    bps = BPS()
-    
-    buffers = int(args[1])
-    methods = args[2:]
-    if not methods:
-        methods = ('gtk', 'c', 'py', 'all')
-
-    bps.run(buffers, methods)
-
-if __name__ == '__main__':
-    sys.exit(main(sys.argv))
diff --git a/examples/gstreamer/cp.py b/examples/gstreamer/cp.py
deleted file mode 100755 (executable)
index 5b97c6d..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/usr/bin/env python
-#
-# gst-python
-# Copyright (C) 2002 David I. Lehn <dlehn@users.sourceforge.net>
-#               2004 Johan Dahlin  <johan@gnome.org>
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-# 
-# Author: David I. Lehn <dlehn@users.sourceforge.net>
-#
-
-import sys
-
-import gst
-
-def filter(input, output):
-   "A GStreamer copy pipeline which can add arbitrary filters"
-
-   # create a new bin to hold the elements
-   bin = gst.Pipeline('pipeline')
-
-   filesrc = gst.Element('filesrc', 'source');
-   filesrc.set_property('location', input)
-
-   stats = gst.Element('statistics', 'stats');
-   stats.set_property('silent', False)
-   stats.set_property('buffer_update_freq', True)
-   stats.set_property('update_on_eos', True)
-   
-   filesink = gst.Element('filesink', 'sink')
-   filesink.set_property('location', output)
-
-   bin.add_many(filesrc, stats, filesink)
-   gst.element_link_many(filesrc, stats, filesink)
-
-   # start playing
-   bin.set_state(gst.STATE_PLAYING);
-
-   while bin.iterate():
-      pass
-
-   # stop the bin
-   bin.set_state(gst.STATE_NULL)
-
-def main(args):
-   "A GStreamer based cp(1) with stats"
-
-   if len(args) != 3:
-      print 'usage: %s source dest' % (sys.argv[0])
-      return -1
-
-   return filter(args[1], args[2])
-
-if __name__ == '__main__':
-   sys.exit(main(sys.argv))
diff --git a/examples/gstreamer/dvdplay.py b/examples/gstreamer/dvdplay.py
deleted file mode 100755 (executable)
index b70bfe5..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-#!/usr/bin/env python
-#
-# gst-python
-# Copyright (C) 2002 David I. Lehn
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-# 
-# Author: David I. Lehn <dlehn@users.sourceforge.net>
-#
-
-import sys
-import gst
-import gtk
-gtk.threads_init()
-
-class DVDPlayer(object):
-   def idle(self, pipeline):
-      #gtk.threads_enter()
-      pipeline.iterate()
-      #gtk.threads_leave()
-      return 1
-
-   def eof(self, sender):
-      print 'EOS, quiting'
-      sys.exit(0)
-      
-   def mpegparse_newpad(self, parser, pad, pipeline):
-      #gtk.threads_enter()
-      print '***** a new pad %s was created' % pad.get_name()
-      if pad.get_name()[:6] == 'video_':
-         pad.link(self.v_queue.get_pad('sink'))
-         self.pipeline.set_state(gst.STATE_PAUSED)
-         self.pipeline.add(self.v_thread)
-         #self.v_thread.set_state(gst.STATE_PLAYING)
-         self.pipeline.set_state(gst.STATE_PLAYING)
-      elif pad.get_name() == 'private_stream_1.0':
-         pad.link(self.a_queue.get_pad('sink'))
-         self.pipeline.set_state(gst.STATE_PAUSED)
-         self.pipeline.add(self.a_thread)
-         #self.a_thread.set_state(gst.STATE_PLAYING);
-         self.pipeline.set_state(gst.STATE_PLAYING)
-      else:
-         print 'unknown pad: %s' % pad.get_name()
-      #gtk.threads_leave()
-
-   def mpegparse_have_size(self, videosink, width, height):
-      gtk.threads_enter()
-      self.gtk_socket.set_usize(width,height)
-      self.appwindow.show_all()
-      gtk.threads_leave()
-
-   def main(self, location, title, chapter, angle):
-      self.location = location
-      self.title = title
-      self.chapter = chapter
-      self.angle = angle
-      
-      #gst_init(&argc,&argv);
-      #gnome_init('MPEG2 Video player','0.0.1',argc,argv);
-
-      ret = self.build()
-      if ret:
-         return ret
-
-      return self.run()
-
-   def run(self):
-      print 'setting to PLAYING state'
-
-      gtk.threads_enter()
-
-      self.pipeline.set_state(gst.STATE_PLAYING)
-
-      gtk.idle_add(self.idle,self.pipeline)
-
-      gtk.main()
-
-      self.pipeline.set_state(gst.STATE_NULL)
-
-      gtk.threads_leave()
-
-      return 0
-
-   def build_video_thread(self):
-      # ***** pre-construct the video thread *****
-      self.v_thread = gst.Thread('v_thread')
-
-      self.v_queue = gst.Element('queue','v_queue')
-
-      self.v_decode = gst.Element('mpeg2dec','decode_video')
-
-      self.color = gst.Element('colorspace','color')
-
-      self.efx = gst.Element('identity','identity')
-      #self.efx = gst.Element('edgeTV','EdgeTV')
-      #self.efx = gst.Element('agingTV','AgingTV')
-      #effectv:  diceTV: DiceTV
-      #effectv:  warpTV: WarpTV
-      #effectv:  shagadelicTV: ShagadelicTV
-      #effectv:  vertigoTV: VertigoTV
-      #self.efx = gst.Element('revTV','RevTV')
-      #self.efx = gst.Element('quarkTV','QuarkTV')
-
-      self.color2 = gst.Element('colorspace','color2')
-
-      self.show = gst.Element('xvideosink','show')
-      #self.show = Element('sdlvideosink','show')
-      #self.show = Element('fakesink','fakesinkv')
-      #self.show.set_property('silent', 0)
-      #self.show.set_property('sync', 1)
-
-      #self.deinterlace = gst.Element('deinterlace','deinterlace')
-      self.deinterlace = gst.Element('identity','deinterlace')
-
-      last = None
-      for e in (self.v_queue, self.v_decode, self.color, self.efx, self.color2,  self.deinterlace, self.show):
-         self.v_thread.add(e)
-         if last:
-            last.link(e)
-         last = e
-
-      #self.v_queue.link(self.v_decode)
-      #self.v_decode.link(self.color)
-      #self.color.link(self.efx)
-      #self.efx.link(self.color2)
-      #self.color2.link(self.show)
-
-   def build_audio_thread(self):
-      # ***** pre-construct the audio thread *****
-      self.a_thread = gst.Thread('a_thread')
-
-      self.a_queue = gst.Element('queue','a_queue')
-
-      self.a_decode = gst.Element('a52dec','decode_audio')
-
-      self.osssink = gst.Element('osssink','osssink')
-      #self.osssink = Element('fakesink','fakesinka')
-      #self.osssink.set_property('silent', 0)
-      #self.osssink.set_property('sync', 0)
-
-      for e in (self.a_queue, self.a_decode, self.osssink):
-         self.a_thread.add(e)
-
-      self.a_queue.link(self.a_decode)
-      self.a_decode.link(self.osssink)
-
-   def build(self):
-      # ***** construct the main pipeline *****
-      self.pipeline = gst.Pipeline('pipeline')
-
-      self.src = gst.Element('dvdreadsrc','src');
-
-      self.src.connect('deep_notify',self.dnprint)
-      self.src.set_property('location', self.location)
-      self.src.set_property('title', self.title)
-      self.src.set_property('chapter', self.chapter)
-      self.src.set_property('angle', self.angle)
-
-      self.parse = gst.Element('mpegdemux','parse')
-      self.parse.set_property('sync', 0)
-
-      self.pipeline.add(self.src)
-      self.pipeline.add(self.parse)
-
-      self.src.link(self.parse)
-
-      # pre-construct the audio/video threads
-      self.build_video_thread()
-      self.build_audio_thread()
-
-      # ***** construct the GUI *****
-      #self.appwindow = gnome_app_new('DVD Player','DVD Player')
-
-      #self.gtk_socket = gtk_socket_new ()
-      #gtk_socket.show()
-
-      #gnome_app_set_contents(GNOME_APP(appwindow),
-            #GTK_WIDGET(gtk_socket));
-
-      #gtk_widget_realize (gtk_socket);
-      #gtk_socket_steal (GTK_SOCKET (gtk_socket), 
-            #gst_util_get_int_arg (GTK_OBJECT(show), 'xid'));
-
-      self.parse.connect('new_pad',self.mpegparse_newpad, self.pipeline)
-      self.src.connect('eos',self.eof)
-      #show.connect('have_size',self.mpegparse_have_size, self.pipeline)
-
-      #self.pipeline.connect('error',self.pipeline_error)
-      #self.pipeline.connect('deep_notify',self.dnprint)
-
-      return 0
-
-   def pipeline_error(self, sender, obj, error):
-      print "(%s) ERROR: %s: %s" % (self, obj.name(), error)
-
-   def dnprint(self, sender, obj, param):
-      str = obj.get_property(param.name)
-      print '%s: %s = %s' % (sender.get_name(), param.name, str)
-
-def main(args):
-   if len(sys.argv) < 5:
-      print 'usage: %s dvdlocation title chapter angle' % sys.argv[0]
-      return -1
-
-   location = sys.argv[1]
-   title = int(sys.argv[2])
-   chapter = int(sys.argv[3])
-   angle = int(sys.argv[4])
-
-   player = DVDPlayer()
-   return player.main(location, title, chapter, angle)
-   
-if __name__ == '__main__':
-   sys.exit(main(sys.argv))
diff --git a/examples/gstreamer/f2f.py b/examples/gstreamer/f2f.py
deleted file mode 100755 (executable)
index 7d162a6..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/env python
-#
-# gst-python
-# Copyright (C) 2002 David I. Lehn
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-# 
-# Author: David I. Lehn <dlehn@users.sourceforge.net>
-#
-
-import sys
-
-import gst
-
-def handoff(sender, *args):
-   print sender.get_name(), args
-
-def main(args):
-   # create a new bin to hold the elements
-   #gst_debug_set_categories(-1)
-   bin = gst.Pipeline('pipeline')
-
-   src = gst.Element('fakesrc', 'src')
-   src.connect('handoff', handoff)
-   src.set_property('silent', 1)
-   src.set_property('num_buffers', 10)
-
-   sink = gst.Element('fakesink', 'sink')
-   sink.connect('handoff', handoff)
-   src.set_property('silent', 1)
-
-   #  add objects to the main pipeline
-   for e in (src, sink):
-      bin.add(e)
-
-   # link the elements
-   res = src.link(sink)
-   assert res
-
-   # start playing
-   res = bin.set_state(gst.STATE_PLAYING);
-   assert res
-
-   while bin.iterate():
-      pass
-
-   # stop the bin
-   res = bin.set_state(gst.STATE_NULL)
-   assert res
-
-if __name__ == '__main__':
-   sys.exit(main(sys.argv))
diff --git a/examples/gstreamer/filesrc.py b/examples/gstreamer/filesrc.py
deleted file mode 100644 (file)
index f6e06e5..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-import sys
-import gobject
-import gst
-
-class FileSource(gst.Element):
-    blocksize = 4096
-    fd = None
-    def __init__(self, name):
-        self.__gobject_init__()
-        self.set_name(name)
-        self.srcpad = gst.Pad('src', gst.PAD_SRC)
-        self.srcpad.set_get_function(self.srcpad_get)
-        self.add_pad(self.srcpad)
-            
-    def set_property(self, name, value):
-        if name == 'location':
-            self.fd = open(value, 'r')
-            
-    def srcpad_get(self, pad):
-        data = self.fd.read(self.blocksize)
-        if data:
-            return gst.Buffer(data)
-        else:
-            self.set_eos()
-            return gst.Event(gst.EVENT_EOS)
-gobject.type_register(FileSource)
-
-def main(args):
-    if len(args) != 3:
-        print 'Usage: %s input output' % (args[0])
-        return -1
-    
-    bin = gst.Pipeline('pipeline')
-
-    filesrc = FileSource('filesource')
-    #filesrc = gst.Element('filesrc', 'src')
-    filesrc.set_property('location', args[1])
-   
-    filesink = gst.Element('filesink', 'sink')
-    filesink.set_property('location', args[2])
-
-    bin.add_many(filesrc, filesink)
-    gst.element_link_many(filesrc, filesink)
-    
-    bin.set_state(gst.STATE_PLAYING);
-
-    while bin.iterate():
-        pass
-
-    bin.set_state(gst.STATE_NULL)
-
-if __name__ == '__main__':
-   sys.exit(main(sys.argv))
-
diff --git a/examples/gstreamer/identity.py b/examples/gstreamer/identity.py
deleted file mode 100755 (executable)
index ac84bb0..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/usr/bin/env python
-#
-# gst-python
-# Copyright (C) 2002 David I. Lehn
-#               2004 Johan Dahlin
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-# 
-# Author: David I. Lehn <dlehn@users.sourceforge.net>
-#
-
-import sys
-import gobject
-import gst
-
-class Identity(gst.Element):
-   def __init__(self):
-      self.__gobject_init__()
-      self.sinkpad = gst.Pad('sink', gst.PAD_SINK)
-      self.add_pad(self.sinkpad)
-      self.sinkpad.set_chain_function(self.chain)
-      self.sinkpad.set_link_function(self.pad_link)
-
-      self.srcpad = gst.Pad('src', gst.PAD_SRC)
-      self.add_pad(self.srcpad)
-      self.srcpad.set_link_function(self.pad_link)
-
-   def get_bufferpool(self, pad):
-      print 'get_bufferpool:', self, pad
-      return self.srcpad.get_bufferpool()
-
-   def pad_link(self, pad, caps):
-      print 'pad_link:', self, pad, caps
-      return gst.PAD_LINK_OK
-
-   def chain(self, pad, buf):
-      self.srcpad.push(buf)
-      
-gobject.type_register(Identity)
-
-def filter(element):
-   # create a new bin to hold the elements
-   bin = gst.Pipeline('pipeline')
-
-   filesrc = gst.Element('sinesrc', 'source');
-   filesink = gst.Element('fakesink', 'sink')
-
-   stats = gst.Element('statistics', 'stats');
-   stats.set_property('silent', False)
-   stats.set_property('buffer_update_freq', True)
-   stats.set_property('update_on_eos', True)
-
-   bin.add_many(filesrc, element, stats, filesink)
-   gst.element_link_many(filesrc, element, stats, filesink)
-
-   # start playing
-   bin.set_state(gst.STATE_PLAYING);
-
-   while bin.iterate():
-      pass
-
-   # stop the bin
-   bin.set_state(gst.STATE_NULL)
-
-def main(args):
-   "A GStreamer Python subclassing example of an identity filter"
-
-   identity = Identity()
-   identity.set_name('identity')
-   if not identity:
-      print 'could not create \"Identity\" element'
-      return -1
-
-   return filter(identity)
-
-if __name__ == '__main__':
-   sys.exit(main(sys.argv))
-
diff --git a/examples/gstreamer/ilat.py b/examples/gstreamer/ilat.py
deleted file mode 100755 (executable)
index 015724e..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/env python
-#
-# gst-python
-# Copyright (C) 2002 David I. Lehn
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-# 
-# Author: David I. Lehn <dlehn@users.sourceforge.net>
-#
-
-import sys
-import gst
-import time
-from identity import Identity
-
-def update(sender, *args):
-    print sender.get_name(), args
-
-def build(filters, b):
-    # create a new bin to hold the elements
-    bin = gst.Pipeline('pipeline')
-
-    src = gst.Element('fakesrc', 'source');
-    src.set_property('silent', 1)
-    src.set_property('num_buffers', b)
-
-    sink = gst.Element('fakesink', 'sink')
-    sink.set_property('silent', 1)
-
-    elements = [src] + filters + [sink]
-    bin.add_many(*elements)
-    gst.element_link_many(*elements)
-    return bin
-
-def filter(bin):
-    bin.set_state(gst.STATE_PLAYING);
-    while bin.iterate():
-        pass
-    bin.set_state(gst.STATE_NULL)
-
-ccnt = 0
-def c():
-    global ccnt
-    id = gst.Element('identity', 'c identity %d' % ccnt);
-    id.set_property('silent', 1)
-    id.set_property('loop_based', 0)
-    ccnt += 1
-    return id
-
-pcnt = 0
-def py():
-    id = Identity()
-    assert id
-    global pcnt
-    id.set_name('py identity %d' % pcnt)
-    pcnt += 1
-    return id
-
-def check(f, n, b):
-    fs = []
-    for i in range(n):
-        fs.append(f())
-
-    pipe = build(fs, b)
-
-    start = time.time()
-    ret = filter(pipe)
-    end = time.time()
-    print '%s b:%d i:%d t:%f' % (f, b, n, end - start)
-    return ret
-
-def main(args):
-    "Identity timer and latency check"
-
-    if len(args) < 3:
-        print 'usage: %s identites buffers' % args[0]
-        return -1
-    n = int(args[1])
-    b = int(args[2])
-    
-    for f in (c, py):
-        check(f, n, b)
-
-if __name__ == '__main__':
-    sys.exit(main(sys.argv))
diff --git a/examples/gstreamer/lat.py b/examples/gstreamer/lat.py
deleted file mode 100755 (executable)
index 6e57306..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-#!/usr/bin/env python
-#
-# gst-python
-# Copyright (C) 2002 David I. Lehn
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-# 
-# Author: David I. Lehn <dlehn@users.sourceforge.net>
-#
-
-import sys
-import time
-import gst
-
-def update(sender, *args):
-   print sender.get_name(), args
-
-max = 0
-min = -1
-total = 0
-count = 0
-print_del = 1
-interations = 0
-
-def handoff_src(src, buf):
-   #buf.set_timestamp(time.time())
-   pass
-
-def handoff_sink(sink, buf):
-   global max, min, total, count
-
-   end = time.time()
-   #d = end - buf.get_timestamp()
-   d = end - 0
-   if d > max:
-      max = d
-   if d < min:
-      min = d
-   total += d
-   count += 1
-   avg = total/count
-
-   if (count % print_del) == 0:
-      print '%07d:%08d min:%08d max:%08d avg:%f\n' %\
-            (count, d, min, max, avg),
-
-def identity_add(pipeline, first, count):
-   last = first
-
-   for i in range(count):
-     name = 'identity_%03d' % i
-     ident = gst.Element('identity', name)
-     ident.set_property('silent', 1)
-     pipeline.add(ident)
-     last.get_pad('src').link(ident.get_pad('sink'))
-     last = ident
-
-   return last
-
-def fakesrc():
-   src = gst.Element('fakesrc','src')
-   src.set_property('silent', 1)
-   src.set_property('num_buffers', iterations)
-   src.connect('handoff', handoff_src)
-   return src
-
-def fakesink():
-   sink = gst.Element('fakesink','fakesink')
-   sink.set_property('silent', 1)
-   sink.connect('handoff', handoff_sink)
-   return sink
-
-def simple(argv):
-   if len(argv) < 1:
-     print 'simple: bad params'
-     return None
-   idents = int(argv[0])
-
-   pipeline = gst.Pipeline('pipeline')
-
-   src = fakesrc()
-   pipeline.add(src)
-   last = identity_add(pipeline, src, idents)
-   sink = fakesink()
-   pipeline.add(sink)
-   last.get_pad('src').link(sink.get_pad('sink'))
-
-   return pipeline
-
-def queue(argv):
-   if len(argv) < 1:
-      print 'queue: bad params'
-      return None
-   idents = int(argv[0])
-
-   pipeline = gst.Pipeline('pipeline')
-
-   src_thr = gst.Thread('src_thread')
-
-   src = fakesrc()
-   src_thr.add(src)
-
-   src_q = gst.Element('queue','src_q')
-   src_thr.add(src_q)
-   src.get_pad('src').link(src_q.get_pad('sink'))
-
-   pipeline.add(src_thr)
-
-   last = identity_add(pipeline, src_q, idents)
-
-   sink_q = gst.Element('queue','sink_q')
-   pipeline.add(sink_q)
-   last.get_pad('src').link(sink_q.get_pad('sink'))
-
-   sink_thr = gst.Thread('sink_thread')
-
-   sink = fakesink()
-
-   sink_thr.add(sink)
-
-   pipeline.add(sink_thr)
-
-   sink_q.get_pad('src').link(sink.get_pad('sink'))
-
-   return pipeline
-
-tests = {
-   'simple' : ('ident_count [scheduler_name]', simple),
-   'queue' : ('ident_count [scheduler_name]', queue),
-}
-
-def main():
-   "A GStreamer latency tester"
-   global iterations, print_del
-
-   if len(sys.argv) < 3:
-      print 'usage: %s iterations print_del test_name [test_params...]' % sys.argv[0]
-      for name in tests.keys():
-         doc, func = tests[name]
-         print '  %s %s' % (name, doc)
-      return -1
-   else:
-      iterations = int(sys.argv[1])
-      print_del = int(sys.argv[2])
-      name = sys.argv[3]
-   pipeline = tests[name][1](sys.argv[4:])
-   assert pipeline
-
-   #xmlSaveFile('lat.gst', gst_xml_write(pipeline))
-
-   pipeline.set_state(gst.STATE_PLAYING)
-
-   while count < iterations:
-      pipeline.iterate()
-
-   pipeline.set_state(gst.STATE_NULL)
-
-   print
-
-   return 0;
-
-if __name__ == '__main__':
-   ret = main()
-   sys.exit (ret)
diff --git a/examples/gstreamer/player.py b/examples/gstreamer/player.py
deleted file mode 100644 (file)
index ebd3db0..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-import os
-import sys
-
-import gst
-
-def found_tags(element, source, tags):
-    print 'Artist:', tags.get('artist')
-    print 'Title: ', tags.get('title')
-    print 'Album: ', tags.get('album')        
-
-def playfile(filename):
-    bin = gst.Pipeline('player')
-    
-    source = gst.Element('filesrc', 'src')
-    source.set_property('location', filename)
-
-    spider = gst.Element('spider', 'spider')
-    spider.connect('found-tag', found_tags)
-    
-    sink = gst.Element('osssink', 'sink')
-
-    bin.add_many(source, spider, sink)
-    gst.element_link_many(source, spider, sink)
-
-    print 'Playing:', os.path.basename(filename)
-    bin.set_state(gst.STATE_PLAYING)
-
-    try:
-        while bin.iterate():
-            pass
-    except KeyboardInterrupt:
-        pass
-    
-    bin.set_state(gst.STATE_NULL)
-
-def main(args):
-    map(playfile, args[1:])
-
-if __name__ == '__main__':
-   sys.exit(main(sys.argv))
-
diff --git a/examples/gstreamer/rot13.py b/examples/gstreamer/rot13.py
deleted file mode 100755 (executable)
index 064fae0..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env python
-#
-# gst-python
-# Copyright (C) 2002 David I. Lehn
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-# 
-# Author: David I. Lehn <dlehn@users.sourceforge.net>
-#
-
-import sys
-import gst
-from identity import Identity
-from cp import filter
-
-class Rot13(Identity):
-   def chain(self, pad, buf):
-      # override Identity's chain
-      data = buf.get_data()
-      data2 = ''
-      # waste cycles
-      for c in data:
-         if c.isalpha():
-            if c.islower():
-               a = 'a'
-            else:
-               a = 'A'
-            c = chr((((ord(c) - ord(a)) + 13) % 26) + ord(a))
-         data2 = data2 + c
-      newbuf = gst.Buffer()
-      newbuf.set_data(data2)
-      self.srcpad.push(newbuf)
-
-gobject.type_register(Rot13)
-
-def main(args):
-   "A GStreamer Python subclassing example of a rot13 filter"
-
-   rot13 = Rot13()
-   rot13.set_name('rot13')
-   if not rot13:
-      print 'could not create \"Rot13\" element'
-      return -1
-
-   return filter([rot13])
-
-if __name__ == '__main__':
-   sys.exit(main(sys.argv))
diff --git a/examples/gstreamer/vorbisplay.py b/examples/gstreamer/vorbisplay.py
deleted file mode 100755 (executable)
index acb9dd0..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/usr/bin/env python
-#
-# gst-python
-# Copyright (C) 2003 David I. Lehn
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-# 
-# Author: David I. Lehn <dlehn@users.sourceforge.net>
-#
-
-import sys
-from gstreamer import *
-
-def gst_props_debug_entry(entry, level=0):
-    name = entry.get_name()
-    type = entry.get_props_type()
-    indent = ' '*level
-
-    if type == PROPS_INT_TYPE:
-        ret, val = entry.get_int()
-        assert ret
-        print '%s%s: int %d' % (indent, name, val)
-    elif type == PROPS_FLOAT_TYPE:
-        ret, val = entry.get_float()
-        assert ret
-        print '%s%s: float %f' % (indent, name, val)
-    elif type == PROPS_FOURCC_TYPE:
-        ret, val = entry.get_fourcc()
-        assert ret
-        print '%s%s: fourcc %c%c%c%c' % (indent, name,
-                    (val>>0)&0xff,
-                    (val>>8)&0xff,
-                    (val>>16)&0xff,
-                    (val>>24)&0xff)
-    elif type == PROPS_BOOLEAN_TYPE:
-        ret, val = entry.get_bool()
-        assert ret
-        print '%s%s: bool %d' % (indent, name, val)
-    elif type == PROPS_STRING_TYPE:
-        ret, val = entry.get_string()
-        assert ret
-        print '%s%s: string "%s"' % (indent, name, val)
-    elif type == PROPS_INT_RANGE_TYPE:
-        ret, min, max = entry.get_int_range()
-        assert ret
-        print '%s%s: int range %d-%d' % (indent, name, min, max)
-    elif type == PROPS_FLOAT_RANGE_TYPE:
-        ret, min, max = entry.get_float_range()
-        assert ret
-        print '%s%s: float range %f-%f' % (indent, name, min, max)
-    elif type == PROPS_LIST_TYPE:
-        ret, val = entry.get_list()
-        assert ret
-        print '[list] ('
-        for e in val:
-            gst_props_debug_entry(e, level+1)
-        print ')'
-    else:
-        print '%sWARNING: %s: unknown property type %d' % (indent, name, type)
-
-def debug_caps(caps):
-    props = caps.get_props()
-    ret, plist = props.get_list()
-    for e in plist:
-        gst_props_debug_entry(e, level=1)
-
-def streaminfo(sender, pspec):
-    assert pspec.name == 'streaminfo'
-    caps = sender.get_property(pspec.name)
-    print 'streaminfo:'
-    debug_caps(caps)
-
-def metadata(sender, pspec):
-    assert pspec.name == 'metadata'
-    caps = sender.get_property(pspec.name)
-    print 'metadata:'
-    debug_caps(caps)
-
-def decoder_notified(sender, pspec):
-    if pspec.name == 'streaminfo':
-        streaminfo(sender, pspec)
-    elif pspec.name == 'metadata':
-        metadata(sender, pspec)
-    else:
-        print 'notify:', sender, pspec
-                                     
-def main():
-    "Basic example to play an Ogg Vorbis stream through OSS"
-
-    if len(sys.argv) != 2:
-        print 'usage: %s <Ogg Vorbis file>' % (sys.argv[0])
-        return -1
-
-    # create a new bin to hold the elements
-    bin = Pipeline('pipeline')
-
-    # create a disk reader
-    filesrc = Element ('filesrc', 'disk_source')
-    filesrc.set_property('location', sys.argv[1])
-
-    # now get the decoder
-    decoder = Element ('vorbisfile', 'parse')
-    decoder.connect('notify', decoder_notified)
-
-    # and an audio sink
-    osssink = Element ('osssink', 'play_audio')
-
-    #  add objects to the main pipeline
-    for e in (filesrc, decoder, osssink):
-        bin.add(e)
-
-    # link the elements
-    previous = None
-    for e in (filesrc, decoder, osssink):
-        if previous:
-            previous.link(e)
-        previous = e
-
-    # start playing
-    bin.set_state(STATE_PLAYING);
-
-    while bin.iterate(): pass
-
-    # stop the bin
-    bin.set_state(STATE_NULL)
-
-    return 0
-
-if __name__ == '__main__':
-    ret = main()
-    sys.exit(ret)