You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	swscale: provide a default scaler if none is set
Lanczos for general case, sinc for upscaling, Gaussian for downscaling. According to current literature these scalers should be the best quality-wise algorithms for each case. Inspired from a patch by wm4 <nfxjfg@googlemail.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
This commit is contained in:
		
				
					committed by
					
						 Luca Barbato
						Luca Barbato
					
				
			
			
				
	
			
			
			
						parent
						
							258414d077
						
					
				
				
					commit
					6b3ff6f91a
				
			| @@ -914,7 +914,17 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, | ||||
|                  SWS_SINC          | | ||||
|                  SWS_SPLINE        | | ||||
|                  SWS_BICUBLIN); | ||||
|     if (!i || (i & (i - 1))) { | ||||
|  | ||||
|     /* provide a default scaler if not set by caller */ | ||||
|     if (!i) { | ||||
|         if (dstW < srcW && dstH < srcH) | ||||
|             flags |= SWS_GAUSS; | ||||
|         else if (dstW > srcW && dstH > srcH) | ||||
|             flags |= SWS_SINC; | ||||
|         else | ||||
|             flags |= SWS_LANCZOS; | ||||
|         c->flags = flags; | ||||
|     } else if (i & (i - 1)) { | ||||
|         av_log(c, AV_LOG_ERROR, | ||||
|                "Exactly one scaler algorithm must be chosen\n"); | ||||
|         return AVERROR(EINVAL); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user