Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: PyGST Query error  (gelezen 3106 keer)

PyGST Query error
« Gepost op: 2008/12/16, 12:25:03 »
Hallo,

Bij mijn applicatie gebruik ik pygst. Eerder had ik een draadje dat dit niet lukte. Dat probleem is dus opgelost. Nu zit ik met een nieuwe probleem, en ik dacht dat het beter was dit in een nieuw draadje te stoppen.

Het probleem alsvolgt. Ik krijg een query error. Deze is vrij random. Meestal helpt het gewoon om nogmaals op 'play' te klikken. Maar prettig is het niet. Nu weet ik niet hoe ik dit het beste kan oplossen. Ik meen dat pygst een debug systeem had, maar ik weet niet hoe ik hiermee moet werken.

Het probleem zit hierin:
def on_update(self):
if not self.allowPlay and self.player.get_state()[1] != gst.STATE_PAUSED and self.player.get_state()[1] != gst.STATE_PLAYING and not self.STATE_STOPPED:
# Waiting for buffer
print "on_update: Waiting for buffer..."
self.parent.ui.time.setText("Waiting for buffer...")
gobject.timeout_add(500,self.on_update)
elif self.allowPlay and not self.STATE_PLAYING and self.player.get_state()[1] != gst.STATE_PAUSED and not self.STATE_STOPPED:
print "on_update: start playing..."

# If we have enough bytes from the videofile, and we are not playing and not paused, start playing
self.startpause(True)
elif not self.STATE_NULL and self.STATE_PLAYING and not self.STATE_STOPPED:
print "on_update: Update slider and time label"

# Update progress slider and time label
try:
self.total = self.player.query_duration(gst.FORMAT_TIME)[0]
  self.nanos = self.player.query_position(gst.FORMAT_TIME)[0]
  ts = self.nanos / gst.SECOND
  time = "%02d:%02d" % divmod(ts,60)
  time_total = "%02d:%02d" %divmod(self.total/gst.SECOND,60)
self.parent.ui.time.setText(str(time)+"  "+str(time_total))
try:
if ts != 0:
progress= (float(self.nanos) / float(self.total)) * 100
self.parent.ui.videoprogress.setSliderPosition(int(progress))
except ZeroDivisionError,msg:
print "progress err: "+str(msg)
except gst.QueryError,msg:
print "gst: QueryError: "+str(msg)
self.parent.ui.time.setText(str(msg))

print "vidiplay: on_update: recall"
gobject.timeout_add(500,self.on_update)

Het liefste wil ik bij eventuele gst errors de errors naar een log bestand schrijven. Heeft iemand een oplossing?

Groet, vlerkje