def _on_done(res): playlists = self.parser.getPlaylists() levels = self.parser.getLevels() fragment_duration = self.parser.getFragmentDuration() caps = self.parser._getCapsDemuxer() self.controller.setIdleDuration( fragment_duration ) #Default pause interval when isBuffering return False if self.getCurrentLevel() > self.getMaxLevel( ) or self.getCurrentLevel() == -1: self.setCurrentLevel(self.getMaxLevel()) #opts for Logger opts = [ ('enqueued_b', int, ''), #2 ('enqueued_t', float, 'visible=1,subplot=2'), #3 ('bwe', float, 'visible=1,subplot=1'), #4 ('cur', int, 'visible=1,subplot=1'), #5 ('level', int, 'visible=1,subplot=3'), #6 ('max_level', int, ''), #7 ('player_status', int, 'visible=1,subplot=3'), #8 ('paused_time', float, ''), #9 ('downloaded_bytes', int, ''), #10 ('cpu', float, 'visible=1,subplot=4'), #11 ('mem', float, 'visible=1,subplot=5'), #12 ('rss', float, ''), #13 ('vms', float, ''), #14 ('ts_start_req', float, ''), #15 ('ts_stop_req', float, ''), #16 ] for i in range(0, len(levels)): opts.append(('q%d' % i, int, 'visible=0')) if self.log_sub_dir: self.log_dir = self.log_dir + '/' + self.log_sub_dir #Create Logger self.logger = Logger(opts, log_period=self.log_period, log_prefix=self.log_prefix, comment=self.log_comment, log_dir=self.log_dir) debug(DEBUG + 1, 'levels: %s', levels) debug(DEBUG + 1, 'playlists: %s', playlists) if self.enable_stress_test: self.inactive_cycle = 0 if self.check_warning_buffering: self.rate_calc.start() self.rate_calc.connect('update', self.checkBuffering) #Init media_engine self.media_engine.setVideoContainer( self.parser.getVideoContainer()) self.media_engine.connect('status-changed', self._onStatusChanged) self.media_engine.start() #start logger reactor.callLater(self.log_period, self.log) # print colored("[play()] I call fetchNextSegment() [1]", 'red') self.fetchNextSegment() print colored("[play()] I called fetchNextSegment() [2]", 'red')
def _on_done(res): playlists = self.parser.getPlaylists() levels = self.parser.getLevels() fragment_duration = self.parser.getFragmentDuration() caps = self.parser._getCapsDemuxer() self.controller.setIdleDuration( fragment_duration ) #Default pause interval when isBuffering return False if self.getCurrentLevel() > self.getMaxLevel( ) or self.getCurrentLevel() == -1: self.setCurrentLevel(self.getMaxLevel()) #opts for Logger opts = [ ('enqueued_b', int, ''), #2 ('enqueued_t', float, ''), #3 ('bwe', float, ''), #4 ('cur', int, ''), #5 ('level', int, ''), #6 ('max_level', int, ''), #7 ('player_status', int, ''), #8 ('paused_time', float, ''), #9 ('downloaded_bytes', int, ''), #10 ('cpu', float, ''), #11 ('mem', float, ''), #12 ('rss', float, ''), #13 ('vms', float, ''), #14 ('ts_start_req', float, ''), #15 ('ts_stop_req', float, ''), #16 ('alpha', int, ''), #17 ('view', int, '') #18 ] for i in range(0, len(levels)): opts.append(('q%d' % i, int, '')) if self.log_sub_dir: self.log_dir = self.log_dir + os.path.sep + self.log_sub_dir if self.chunkFolder: self.log_dir = "{0!s}{1!s}{2!s}".format( self.log_dir, os.path.sep, self.chunkFolder) #Create Logger self.logger = Logger(opts, log_period=self.log_period, log_prefix=self.log_prefix, comment=self.log_comment, log_dir=self.log_dir) debug(DEBUG + 1, 'levels: %s', levels) debug(DEBUG + 1, 'playlists: %s', playlists) if self.enable_stress_test: self.inactive_cycle = 0 if self.check_warning_buffering: self.rate_calc.start() self.rate_calc.connect('update', self.checkBuffering) #Init media_engine self.media_engine.setVideoContainer( self.parser.getVideoContainer()) self.media_engine.connect('status-changed', self._onStatusChanged) self.media_engine.setViews(self.parser.getViews()) if (self.vr): self.HMDEmulator.start(self.t_experiment_started) try: #if the media engine is gst if self.media_engine.pipeline == None: self.media_engine.start() #self.media_engine.start() except Exception as e: self.media_engine.start() #start logger reactor.callLater(self.log_period, self.log) #Start playing self.fetchNextSegment()