Example #1
0
 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')
Example #2
0
        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()