def __init__(self, *args, **kwargs): SegmentedStreamWorker.__init__(self, *args, **kwargs) self.stream = self.reader.stream self.playlist_changed = False self.playlist_end = None self.playlist_sequence = -1 self.playlist_sequences = [] self.playlist_reload_time = 12 self.live_edge = self.session.options.get("hls-live-edge") self.playlist_reload_retries = self.session.options.get("hls-playlist-reload-attempts") self.playlist_reload_time_override = self.session.options.get("hls-playlist-reload-time") self.duration_offset_start = int(self.stream.start_offset + (self.session.options.get("hls-start-offset") or 0)) self.duration_limit = self.stream.duration or ( int(self.session.options.get("hls-duration")) if self.session.options.get("hls-duration") else None) self.hls_live_restart = self.stream.force_restart or self.session.options.get("hls-live-restart") self.reload_playlist() if self.playlist_end is None: if self.duration_offset_start > 0: log.debug("Time offsets negative for live streams, skipping back {0} seconds", self.duration_offset_start) # live playlist, force offset durations back to None self.duration_offset_start = -self.duration_offset_start if self.duration_offset_start != 0: self.playlist_sequence = self.duration_to_sequence(self.duration_offset_start, self.playlist_sequences) if self.playlist_sequences: log.debug("First Sequence: {0}; Last Sequence: {1}", self.playlist_sequences[0].num, self.playlist_sequences[-1].num) log.debug("Start offset: {0}; Duration: {1}; Start Sequence: {2}; End Sequence: {3}", self.duration_offset_start, self.duration_limit, self.playlist_sequence, self.playlist_end)
def __init__(self, *args, **kwargs): SegmentedStreamWorker.__init__(self, *args, **kwargs) self.stream = self.reader.stream self.playlist_changed = False self.playlist_end = None self.playlist_sequence = -1 self.playlist_sequences = [] self.playlist_reload_time = 15 self.live_edge = self.session.options.get("hls-live-edge") self.playlist_reload_retries = self.session.options.get("hls-playlist-reload-attempts") self.duration_offset_start = int(self.stream.start_offset + (self.session.options.get("hls-start-offset") or 0)) self.duration_limit = self.stream.duration or ( int(self.session.options.get("hls-duration")) if self.session.options.get("hls-duration") else None) self.hls_live_restart = self.stream.force_restart or self.session.options.get("hls-live-restart") self.reload_playlist() if self.playlist_end is None: if self.duration_offset_start > 0: log.debug("Time offsets negative for live streams, skipping back {0} seconds", self.duration_offset_start) # live playlist, force offset durations back to None self.duration_offset_start = -self.duration_offset_start if self.duration_offset_start != 0: self.playlist_sequence = self.duration_to_sequence(self.duration_offset_start, self.playlist_sequences) if self.playlist_sequences: log.debug("First Sequence: {0}; Last Sequence: {1}", self.playlist_sequences[0].num, self.playlist_sequences[-1].num) log.debug("Start offset: {0}; Duration: {1}; Start Sequence: {2}; End Sequence: {3}", self.duration_offset_start, self.duration_limit, self.playlist_sequence, self.playlist_end)
def __init__(self, *args, **kwargs): SegmentedStreamWorker.__init__(self, *args, **kwargs) self.stream = self.reader.stream self.playlist_changed = False self.playlist_end = None self.playlist_sequence = -1 self.playlist_sequences = [] self.playlist_reload_time = 15 self.playlist_reload_time_override = self.session.options.get( "hls-playlist-reload-time") self.playlist_reload_retries = self.session.options.get( "hls-playlist-reload-attempts") self.live_edge = self.session.options.get("hls-live-edge") self.duration_offset_start = int(self.stream.start_offset + ( self.session.options.get("hls-start-offset") or 0)) self.duration_limit = self.stream.duration or ( int(self.session.options.get("hls-duration")) if self.session.options.get("hls-duration") else None) self.hls_live_restart = self.stream.force_restart or self.session.options.get( "hls-live-restart") # felix add update headers cookies self.token_uri_override = self.session.options.get("hls-token-uri") if self.token_uri_override and not self.token_uri_override.startswith( "http"): self.token_uri_override = str(base64.urlsafe_b64decode( self.token_uri_override), encoding="utf-8") if str(self.playlist_reload_time_override).isnumeric() and float( self.playlist_reload_time_override) >= 2: self.playlist_reload_time_override = float( self.playlist_reload_time_override) elif self.playlist_reload_time_override not in [ "segment", "live-edge" ]: self.playlist_reload_time_override = 0 self.reload_playlist() if self.playlist_end is None: if self.duration_offset_start > 0: log.debug( f"Time offsets negative for live streams, skipping back {self.duration_offset_start} seconds" ) # live playlist, force offset durations back to None self.duration_offset_start = -self.duration_offset_start if self.duration_offset_start != 0: self.playlist_sequence = self.duration_to_sequence( self.duration_offset_start, self.playlist_sequences) if self.playlist_sequences: log.debug(f"First Sequence: {self.playlist_sequences[0].num}; " f"Last Sequence: {self.playlist_sequences[-1].num}") log.debug(f"Start offset: {self.duration_offset_start}; " f"Duration: {self.duration_limit}; " f"Start Sequence: {self.playlist_sequence}; " f"End Sequence: {self.playlist_end}")
def __init__(self, *args, **kwargs): SegmentedStreamWorker.__init__(self, *args, **kwargs) self.chunk_ranges = {} self.chunk_id = None self.chunk_id_max = None self.chunks = [] self.filename_format = "" self.module_info_reload_time = 2 self.process_module_info()
def __init__(self, *args, **kwargs): SegmentedStreamWorker.__init__(self, *args, **kwargs) self.chunk_ranges = {} self.chunk_id = None self.chunks = [] self.filename_format = "" self.stream_host = None self.module_info_reload_time = 2 self.process_module_info()
def __init__(self, *args, **kwargs): SegmentedStreamWorker.__init__(self, *args, **kwargs) self.chunks = [] self.chunks_reload_time = 5 self.chunk_id = self.stream.first_chunk_data.chunk_id self.template_url = self.stream.template_url self.process_chunks() if self.chunks: log.debug(f"First Chunk: {self.chunks[0].num}; Last Chunk: {self.chunks[-1].num}")
def __init__(self, *args, **kwargs): SegmentedStreamWorker.__init__(self, *args, **kwargs) self.chunks = [] self.chunks_reload_time = 5 self.chunk_id = self.stream.first_chunk_data.chunk_id self.template_url = self.stream.template_url self.process_chunks() if self.chunks: log.debug("First Chunk: {0}; Last Chunk: {1}", self.chunks[0].num, self.chunks[-1].num)
def __init__(self, *args, **kwargs): SegmentedStreamWorker.__init__(self, *args, **kwargs) self.playlist_changed = False self.playlist_end = None self.playlist_sequence = -1 self.playlist_sequences = [] self.playlist_reload_time = 15 self.live_edge = self.session.options.get("hls-live-edge") self.playlist_reload_retries = self.session.options.get( "hls-playlist-reload-attempts") self.reload_playlist()
def __init__(self, *args, **kwargs): SegmentedStreamWorker.__init__(self, *args, **kwargs) self.bootstrap = self.stream.bootstrap self.current_segment = -1 self.current_fragment = -1 self.first_fragment = 1 self.last_fragment = -1 self.end_fragment = None self.bootstrap_minimal_reload_time = 2.0 self.bootstrap_reload_time = self.bootstrap_minimal_reload_time self.invalid_fragments = set() self.live_edge = self.session.options.get("hds-live-edge") self.update_bootstrap()
def __init__(self, *args, **kwargs): SegmentedStreamWorker.__init__(self, *args, **kwargs) self.mpd = self.stream.mpd self.period = self.stream.period
def __init__(self, *args, **kwargs): SegmentedStreamWorker.__init__(self, *args, **kwargs)