updates for new API

Original commit message from CVS:
updates for new API
This commit is contained in:
Thomas Vander Stichele 2004-03-18 15:51:54 +00:00
parent afb7288015
commit 1fa929dc79
3 changed files with 47 additions and 11 deletions

View file

@ -1,3 +1,10 @@
2004-03-18 Thomas Vander Stichele <thomas at apestaart dot org>
* examples/gst/player.py:
update for new API. Use Enter to pause pipeline.
* examples/gst/vorbisplay.py:
update for new API
2004-03-18 Thomas Vander Stichele <thomas at apestaart dot org> 2004-03-18 Thomas Vander Stichele <thomas at apestaart dot org>
* configure.ac: * configure.ac:

View file

@ -1,3 +1,4 @@
#!/usr/bin/env python
import os import os
import sys import sys
@ -5,10 +6,20 @@ import gst
def found_tags(element, source, tags): def found_tags(element, source, tags):
for tag in tags.keys(): for tag in tags.keys():
print gst.tag_get_nick(tag), tags[tag] print "%s: %s" % (gst.tag_get_nick(tag), tags[tag])
#def error(source, error, debug):
def deep_notify(*args):
pass
def error(*args):
print args
def playfile(filename): def playfile(filename):
bin = gst.Pipeline('player') bin = gst.Pipeline('player')
bin.connect('deep-notify', deep_notify)
bin.connect('error', error)
source = gst.Element('filesrc', 'src') source = gst.Element('filesrc', 'src')
source.set_property('location', filename) source.set_property('location', filename)
@ -17,19 +28,37 @@ def playfile(filename):
spider.connect('found-tag', found_tags) spider.connect('found-tag', found_tags)
sink = gst.Element('osssink', 'sink') sink = gst.Element('osssink', 'sink')
#sink.set_property('release-device', 1)
bin.add_many(source, spider, sink) bin.add_many(source, spider, sink)
gst.element_link_many(source, spider, sink) if not gst.element_link_many(source, spider, sink):
print "ERROR: could not link"
sys.exit (1)
print 'Playing:', os.path.basename(filename) print 'Playing:', os.path.basename(filename)
bin.set_state(gst.STATE_PLAYING) if not bin.set_state(gst.STATE_PLAYING):
print "ERROR: could not set bin to playing"
try: sys.exit (1)
while bin.iterate():
pass
except KeyboardInterrupt:
pass
playing = 1
while playing:
try:
if not bin.iterate():
playing = 0
except KeyboardInterrupt:
if not bin.set_state(gst.STATE_PAUSED):
print "ERROR: could not set bin to paused"
sys.exit (1)
print "Paused. Press Enter to go back to playing."
try:
sys.stdin.readline ()
if not bin.set_state(gst.STATE_PLAYING):
print "ERROR: could not set bin to playing"
sys.exit (1)
print "Playing."
except KeyboardInterrupt:
playing = 0
print "DONE playing"
bin.set_state(gst.STATE_NULL) bin.set_state(gst.STATE_NULL)
def main(args): def main(args):

View file

@ -22,7 +22,7 @@
# #
import sys import sys
from gstreamer import * from gst import *
def gst_props_debug_entry(entry, level=0): def gst_props_debug_entry(entry, level=0):
name = entry.get_name() name = entry.get_name()