Exemplo n.º 1
0
    def register(self, utility, preferredplaybackmode=None, closeextplayercallback=None):

        self.utility = utility  # TEMPARNO: make sure only used for language strings

        self.preferredplaybackmode = preferredplaybackmode
        self.determine_playbackmode()

        if self.playbackmode == PLAYBACKMODE_INTERNAL:
            # The python-vlc bindings. Created only once at the moment,
            # as using MediaControl.exit() more than once with the raw interface
            # blows up the GUI.
            #
            from Tribler.Video.VLCWrapper import VLCWrapper
            self.vlcwrap = VLCWrapper(self.utility.getPath())
            self.supportedvodevents = [VODEVENT_START, VODEVENT_PAUSE, VODEVENT_RESUME]
        else:
            self.vlcwrap = None
            # Can't pause when external player
            self.supportedvodevents = [VODEVENT_START]

        if self.playbackmode != PLAYBACKMODE_INTERNAL or not USE_VLC_RAW_INTERFACE:
            # Start HTTP server for serving video to external player
            self.videohttpserv = VideoHTTPServer.getInstance(self.videohttpservport)  # create
            self.videohttpserv.background_serve()

        if closeextplayercallback is not None:
            self.closeextplayercallback = closeextplayercallback
Exemplo n.º 2
0
    def setUp(self):
        """ unittest test setup code """
        self.port = random.randint(10000, 60000)
        self.serv = VideoHTTPServer.getInstance(self.port)
        self.serv.background_serve()
        self.serv.register(self.videoservthread_error_callback, self.videoservthread_set_status_callback)

        self.sourcefn = os.path.join(BASE_DIR, "API", "file.wmv")  # 82KB or 82948 bytes
        self.sourcesize = os.path.getsize(self.sourcefn)

        # wait 5s to allow server to start
        time.sleep(5)
Exemplo n.º 3
0
    def gui_vod_ready_callback(self,d,event,params):
        filename = params["filename"]
        if filename:
            self.play_from_file(filename)
        else:
            stream = params["stream"]
            mimetype = params["mimetype"]
            length = params["length"]

            videoserv = VideoHTTPServer.getInstance()
            videoserv.set_inputstream(mimetype,stream,length)
            videourl = self.create_url(videoserv,'/')
            videofiles = d.get_selected_files()
            [mimetype,cmd] = self.get_video_player(None,videourl,mimetype=mimetype)

            self.launch_video_player(cmd)
Exemplo n.º 4
0
    def play_file_via_http(self,dest):
        if DEBUG:
            print >>sys.stderr,"videoplay: Playing encrypted file via HTTP"

        videoserver = VideoHTTPServer.getInstance()
        
        (prefix,ext) = os.path.splitext(dest)
        videourl = self.create_url(videoserver,'/'+os.path.basename(prefix+ext))
        [mimetype,cmd] = self.get_video_player(ext,videourl)

        stream = open(dest,"rb")
        stats = os.stat(dest)
        length = stats.st_size
        videoserv.set_inputstream(mimetype,stream,length)
        
        self.launch_video_player(cmd)
Exemplo n.º 5
0
    def play_file_via_http(self, dest):
        if DEBUG:
            print >> sys.stderr, "videoplay: Playing encrypted file via HTTP"

        videoserver = VideoHTTPServer.getInstance()

        (prefix, ext) = os.path.splitext(dest)
        videourl = self.create_url(videoserver,
                                   '/' + os.path.basename(prefix + ext))
        [mimetype, cmd] = self.get_video_player(ext, videourl)

        stream = open(dest, "rb")
        stats = os.stat(dest)
        length = stats.st_size
        videoserv.set_inputstream(mimetype, stream, length)

        self.launch_video_player(cmd)
Exemplo n.º 6
0
def vod_ready_callback(d, event, params):
    print >> sys.stderr, "main: VOD ready callback called", currentThread().getName(), "###########################################################", params["mimetype"]

    """
    f = open("video.avi","wb")
    while True:
        data = stream.read()
        print >>sys.stderr,"main: VOD ready callback: reading",type(data)
        print >>sys.stderr,"main: VOD ready callback: reading",len(data)
        if len(data) == 0:
            break
        f.write(data)
    f.close()
    stream.close()
    """

    videoserv = VideoHTTPServer.getInstance()
    videoserv.set_inputstream('video/mpeg', params["stream"], None)
Exemplo n.º 7
0
    def gui_vod_ready_callback(self, d, event, params):
        filename = params["filename"]
        if filename:
            self.play_from_file(filename)
        else:
            stream = params["stream"]
            mimetype = params["mimetype"]
            length = params["length"]

            videoserv = VideoHTTPServer.getInstance()
            videoserv.set_inputstream(mimetype, stream, length)
            videourl = self.create_url(videoserv, '/')
            videofiles = d.get_selected_files()
            [mimetype, cmd] = self.get_video_player(None,
                                                    videourl,
                                                    mimetype=mimetype)

            self.launch_video_player(cmd)
Exemplo n.º 8
0
    def setUp(self):
        TestAsServer.setUp(self)

        self.port = 6789
        self.serv = VideoHTTPServer.getInstance(self.port)
        self.serv.background_serve()
Exemplo n.º 9
0
        print >>sys.stderr,"main: VOD ready callback: reading",type(data)
        print >>sys.stderr,"main: VOD ready callback: reading",len(data)
        if len(data) == 0:
            break
        f.write(data)
    f.close()
    stream.close()
    """

    videoserv = VideoHTTPServer.getInstance()
    videoserv.set_inputstream('video/mpeg',params["stream"],None)


if __name__ == "__main__":

    videoserv = VideoHTTPServer.getInstance() # create
    videoserv.background_serve()

    s = Session()

    if sys.platform == 'win32':
        tdef = TorrentDef.load('bla.torrent')
    else:
        tdef = TorrentDef.load('/tmp/bla.torrent')
    dcfg = DownloadStartupConfig.get_copy_of_default()
    #dcfg.set_saveas('/arno')
    dcfg = DownloadStartupConfig.get_copy_of_default()
    dcfg.set_video_start_callback(vod_ready_callback)
    #dcfg.set_selected_files('MATRIX-XP_engl_L.avi') # play this video
    #dcfg.set_selected_files('field-trip-west-siberia.avi')
Exemplo n.º 10
0
        print >>sys.stderr,"main: VOD ready callback: reading",type(data)
        print >>sys.stderr,"main: VOD ready callback: reading",len(data)
        if len(data) == 0:
            break
        f.write(data)
    f.close()
    stream.close()
    """

    videoserv = VideoHTTPServer.getInstance()
    videoserv.set_inputstream('video/mpeg', params["stream"], None)


if __name__ == "__main__":

    videoserv = VideoHTTPServer.getInstance()  # create
    videoserv.background_serve()

    s = Session()

    if sys.platform == 'win32':
        tdef = TorrentDef.load('bla.torrent')
    else:
        tdef = TorrentDef.load('/tmp/bla.torrent')
    dcfg = DownloadStartupConfig.get_copy_of_default()
    #dcfg.set_saveas('/arno')
    dcfg = DownloadStartupConfig.get_copy_of_default()
    dcfg.set_video_start_callback(vod_ready_callback)
    #dcfg.set_selected_files('MATRIX-XP_engl_L.avi') # play this video
    #dcfg.set_selected_files('field-trip-west-siberia.avi')