resample: Fix overflow
Found-by: Jim Radford Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		
							parent
							
								
									3e4375833d
								
							
						
					
					
						commit
						a67cb012e6
					
				| @ -207,8 +207,10 @@ AVResampleContext *av_resample_init(int out_rate, int in_rate, int filter_size, | ||||
|     memcpy(&c->filter_bank[c->filter_length*phase_count+1], c->filter_bank, (c->filter_length-1)*sizeof(FELEM)); | ||||
|     c->filter_bank[c->filter_length*phase_count]= c->filter_bank[c->filter_length - 1]; | ||||
| 
 | ||||
|     c->src_incr= out_rate; | ||||
|     c->ideal_dst_incr= c->dst_incr= in_rate * phase_count; | ||||
|     if(!av_reduce(&c->src_incr, &c->dst_incr, out_rate, in_rate * (int64_t)phase_count, INT32_MAX/2)) | ||||
|         goto error; | ||||
|     c->ideal_dst_incr= c->dst_incr; | ||||
| 
 | ||||
|     c->index= -phase_count*((c->filter_length-1)/2); | ||||
| 
 | ||||
|     return c; | ||||
|  | ||||
| @ -224,8 +224,10 @@ AVResampleContext *swr_resample_init(AVResampleContext *c, int out_rate, int in_ | ||||
|     } | ||||
| 
 | ||||
|     c->compensation_distance= 0; | ||||
|     c->src_incr= out_rate; | ||||
|     c->ideal_dst_incr= c->dst_incr= in_rate * phase_count; | ||||
|     if(!av_reduce(&c->src_incr, &c->dst_incr, out_rate, in_rate * (int64_t)phase_count, INT32_MAX/2)) | ||||
|         goto error; | ||||
|     c->ideal_dst_incr= c->dst_incr; | ||||
| 
 | ||||
|     c->index= -phase_count*((c->filter_length-1)/2); | ||||
|     c->frac= 0; | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user