Bizarro erro intermitente no vídeo (GStreamer)

Tenho um projeto que executa o Python 2.7, o PyGTK 2.24 e a versão mais recente do PyGS

Estou recebendo um erro intermitente estranho no código a seguir. Com o primeiro erro mais longo, o vídeo será reproduzido corretamente e o erro será exibido APÓS fechar a janela do vídeo. O segundo impede que a janela se abr

import pygtk
pygtk.require('2.0')
import gtk, pango
import pygst
pygst.require('0.10')
import gst
import Trailcrest
import os, sys

class Video:

    def __init__(self):

        def on_message(bus, message): 
            if message.type == gst.MESSAGE_EOS: 
                # End of Stream 
                player.set_state(gst.STATE_NULL) 
            elif message.type == gst.MESSAGE_ERROR: 
                player.set_state(gst.STATE_NULL) 
                (err, debug) = message.parse_error() 
                print "Error: %s" % err, debug

        def on_sync_message(bus, message):
            if message.structure is None: 
                return False 
            if message.structure.get_name() == "prepare-xwindow-id":
                if sys.platform == "win32":
                    win_id = videowidget.window.handle
                else:
                    win_id = videowidget.window.xid
                assert win_id
                imagesink = message.src 
                imagesink.set_property("force-aspect-ratio", True)
                imagesink.set_xwindow_id(win_id) 

        win = gtk.Window()
        win.set_resizable(False)
        win.set_has_frame(False)
        win.set_position(gtk.WIN_POS_CENTER)

        fixed = gtk.Fixed()
        win.add(fixed)
        fixed.show()

        videowidget = gtk.DrawingArea()
        fixed.put(videowidget, 0, 0)
        videowidget.set_size_request(640, 480)
        videowidget.show()

        # Setup GStreamer 
        player = gst.element_factory_make("playbin", "MultimediaPlayer")
        bus = player.get_bus() 
        bus.add_signal_watch() 
        bus.enable_sync_message_emission() 
        #used to get messages that GStreamer emits 
        bus.connect("message", on_message) 
        #used for connecting video to your application 
        bus.connect("sync-message::element", on_sync_message)
        player.set_property("uri", "file://" + os.getcwd() + "/VID/SEQ-GAME-OPEN.ogv") 
        player.set_state(gst.STATE_PLAYING)

        win.show()

def main():
    gtk.gdk.threads_init()
    gtk.main()
    return 0

if __name__ == "__main__":
    Video()
    main()

O programa 'Video.py' recebeu um erro do sistema X Window. Isso provavelmente reflete um erro no programa. O erro foi 'BadIDChoice (ID de recurso inválido escolhido para esta conexão)'. (Detalhes: serial 373 error_code 14 request_code 1 minor_code 0) (Observação para programadores: normalmente, os erros X são relatados de forma assíncrona; ou seja, você receberá o erro um pouco depois de causá-lo. Para depurar seu programa, execute-o com o - opção de sincronização da linha de comando para alterar esse comportamento. Você pode obter um retorno significativo do depurador se interromper a função gdk_x_error ().)

Uma observação rápida ... segui as instruções e executei "python Video.py --sync" na linha de comando (estou no Kubuntu) e recebi a mensagem novament

Aqui está o outro erro - aquele que impede a reproduçã

python: ../../src/xcb_io.c:221: poll_for_event: Assertion `(((long) (event_sequence) - (long) (dpy-> request)) <= 0) 'falhou. Abortad

Estes irão literalmente alternar, embora não perfeitamente. Eu consegui três do primeiro, dois do segundo, um primeiro, um segundo, dois primeiro, etc. É sempre diferent

O que diabos está acontecendo aqui?

questionAnswers(1)

yourAnswerToTheQuestion