[Assorted-commits] SF.net SVN: assorted:[1146] sandbox/trunk/src/py
Brought to you by:
yangzhang
From: <yan...@us...> - 2009-01-26 05:35:47
|
Revision: 1146 http://assorted.svn.sourceforge.net/assorted/?rev=1146&view=rev Author: yangzhang Date: 2009-01-26 05:35:42 +0000 (Mon, 26 Jan 2009) Log Message: ----------- added gstdemo, ranges Added Paths: ----------- sandbox/trunk/src/py/gstdemo.py sandbox/trunk/src/py/ranges.py Added: sandbox/trunk/src/py/gstdemo.py =================================================================== --- sandbox/trunk/src/py/gstdemo.py (rev 0) +++ sandbox/trunk/src/py/gstdemo.py 2009-01-26 05:35:42 UTC (rev 1146) @@ -0,0 +1,48 @@ +#!/usr/bin/env python + +# Demo of gst, from following the tutorial at +# <http://pygstdocs.berlios.de/pygst-tutorial/>. Pass in full path to an audio +# file. + +# You can also do: +# gst-launch-0.10 playbin uri=file://<PATH> + +import gst, urllib, sys, time +player = gst.element_factory_make('playbin') +player.set_property('uri', 'file://' + urllib.quote(sys.argv[1])) +print 'play' +player.set_state(gst.STATE_PLAYING) +time.sleep(1) # running in another thread +print 'still playing' +player.set_state(gst.STATE_PLAYING) +time.sleep(1) +print 'pause' +player.set_state(gst.STATE_PAUSED) +time.sleep(.5) +print 'play' +player.set_state(gst.STATE_PLAYING) +time.sleep(.5) +print 'stop' +player.set_state(gst.STATE_NULL) +time.sleep(.5) +print 'play; note that we have been reset' +player.set_state(gst.STATE_PLAYING) +time.sleep(2) +timefmt = gst.Format(gst.FORMAT_TIME) +# if you call this in STATE_NULL then you'll get QueryError: query failed +posns = player.query_position(timefmt, None)[0] +durns = player.query_duration(timefmt, None)[0] +print timefmt, posns / 1e9, durns / 1e9 +# "A non flushing seek might take some time to perform as the currently playing +# data in the pipeline will not be cleared. An accurate seek might be slower +# for formats that don't have any indexes or timestamp markers in the stream. +# Specifying this flag might require a complete scan of the file in those +# cases." From +# <http://pygstdocs.berlios.de/pygst-reference/gst-constants.html#gst-state-constants> +print 'seek end' +player.seek_simple(timefmt, gst.SEEK_FLAG_FLUSH, durns) +time.sleep(.5) +print 'seek 50%' +player.seek_simple(timefmt, gst.SEEK_FLAG_FLUSH, durns / 2) +time.sleep(1) +print 'done' Property changes on: sandbox/trunk/src/py/gstdemo.py ___________________________________________________________________ Added: svn:executable + * Added: sandbox/trunk/src/py/ranges.py =================================================================== --- sandbox/trunk/src/py/ranges.py (rev 0) +++ sandbox/trunk/src/py/ranges.py 2009-01-26 05:35:42 UTC (rev 1146) @@ -0,0 +1,6 @@ +# Sanity-checking my own grasp on range partitioning and int division. +for i in range(10): + for j in range(10): + for x in range(j): + print 'max=%d n=%d pos=%d: %d..%d' % (i,j,x,i*x/j,i*(x+1)/j if x<j-1 else i) + print This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |