Prevent dts generation code to be executed when delay is > MAX_REORDER_DELAY,
this fixes overflow in AVStream->pts_buffer. Originally committed as revision 14714 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
		
							parent
							
								
									ebc22cc29f
								
							
						
					
					
						commit
						cb5b96cde0
					
				| @ -895,7 +895,7 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st, | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if(pkt->pts != AV_NOPTS_VALUE){ |     if(pkt->pts != AV_NOPTS_VALUE && delay <= MAX_REORDER_DELAY){ | ||||||
|         st->pts_buffer[0]= pkt->pts; |         st->pts_buffer[0]= pkt->pts; | ||||||
|         for(i=1; i<delay+1 && st->pts_buffer[i] == AV_NOPTS_VALUE; i++) |         for(i=1; i<delay+1 && st->pts_buffer[i] == AV_NOPTS_VALUE; i++) | ||||||
|             st->pts_buffer[i]= (i-delay-1) * pkt->duration; |             st->pts_buffer[i]= (i-delay-1) * pkt->duration; | ||||||
| @ -2524,7 +2524,7 @@ static int compute_pkt_fields2(AVStream *st, AVPacket *pkt){ | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     //calculate dts from pts
 |     //calculate dts from pts
 | ||||||
|     if(pkt->pts != AV_NOPTS_VALUE && pkt->dts == AV_NOPTS_VALUE){ |     if(pkt->pts != AV_NOPTS_VALUE && pkt->dts == AV_NOPTS_VALUE && delay <= MAX_REORDER_DELAY){ | ||||||
|         st->pts_buffer[0]= pkt->pts; |         st->pts_buffer[0]= pkt->pts; | ||||||
|         for(i=1; i<delay+1 && st->pts_buffer[i] == AV_NOPTS_VALUE; i++) |         for(i=1; i<delay+1 && st->pts_buffer[i] == AV_NOPTS_VALUE; i++) | ||||||
|             st->pts_buffer[i]= (i-delay-1) * pkt->duration; |             st->pts_buffer[i]= (i-delay-1) * pkt->duration; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user