You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	ffplay: Fallback to dts if pts is unavailable in pkt_in_play_range calculation
Reviewed-by: Marton Balint <cus@passwd.hu> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		
							
								
								
									
										4
									
								
								ffplay.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								ffplay.c
									
									
									
									
									
								
							| @@ -2881,6 +2881,7 @@ static int read_thread(void *arg) | ||||
|     int orig_nb_streams; | ||||
|     SDL_mutex *wait_mutex = SDL_CreateMutex(); | ||||
|     int scan_all_pmts_set = 0; | ||||
|     int64_t pkt_ts; | ||||
|  | ||||
|     memset(st_index, -1, sizeof(st_index)); | ||||
|     is->last_video_stream = is->video_stream = -1; | ||||
| @@ -3143,8 +3144,9 @@ static int read_thread(void *arg) | ||||
|         } | ||||
|         /* check if packet is in play range specified by user, then queue, otherwise discard */ | ||||
|         stream_start_time = ic->streams[pkt->stream_index]->start_time; | ||||
|         pkt_ts = pkt->pts == AV_NOPTS_VALUE ? pkt->dts : pkt->pts; | ||||
|         pkt_in_play_range = duration == AV_NOPTS_VALUE || | ||||
|                 (pkt->pts - (stream_start_time != AV_NOPTS_VALUE ? stream_start_time : 0)) * | ||||
|                 (pkt_ts - (stream_start_time != AV_NOPTS_VALUE ? stream_start_time : 0)) * | ||||
|                 av_q2d(ic->streams[pkt->stream_index]->time_base) - | ||||
|                 (double)(start_time != AV_NOPTS_VALUE ? start_time : 0) / 1000000 | ||||
|                 <= ((double)duration / 1000000); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user