mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 08:30:46 +00:00 
			
		
		
		
	[downloader/hls] Handle MPEG-2 PES timestamp overflow
This commit is contained in:
		@@ -351,7 +351,16 @@ class HlsFD(FragmentFD):
 | 
			
		||||
                            # add the cue to the window
 | 
			
		||||
                            dedup_window.append(cue)
 | 
			
		||||
                        elif isinstance(block, webvtt.Magic):
 | 
			
		||||
                            # XXX: we do not handle MPEGTS overflow
 | 
			
		||||
                            # take care of MPEG PES timestamp overflow
 | 
			
		||||
                            if block.mpegts is None:
 | 
			
		||||
                                block.mpegts = 0
 | 
			
		||||
                            extra_state.setdefault('webvtt_mpegts_adjust', 0)
 | 
			
		||||
                            block.mpegts += extra_state['webvtt_mpegts_adjust'] << 33
 | 
			
		||||
                            if block.mpegts < extra_state.get('webvtt_mpegts_last', 0):
 | 
			
		||||
                                extra_state['webvtt_mpegts_adjust'] += 1
 | 
			
		||||
                                block.mpegts += 1 << 33
 | 
			
		||||
                            extra_state['webvtt_mpegts_last'] = block.mpegts
 | 
			
		||||
 | 
			
		||||
                            if frag_index == 1:
 | 
			
		||||
                                extra_state['webvtt_mpegts'] = block.mpegts or 0
 | 
			
		||||
                                extra_state['webvtt_local'] = block.local or 0
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user