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
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)
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)
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)
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)
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)
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)
def setUp(self): TestAsServer.setUp(self) self.port = 6789 self.serv = VideoHTTPServer.getInstance(self.port) self.serv.background_serve()
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')
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')