|
|
@@ -1155,8 +1155,19 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, |
|
|
|
SWS_SINC | |
|
|
|
SWS_SPLINE | |
|
|
|
SWS_BICUBLIN); |
|
|
|
if (!i || (i & (i - 1))) { |
|
|
|
av_log(c, AV_LOG_ERROR, "Exactly one scaler algorithm must be chosen, got %X\n", i); |
|
|
|
|
|
|
|
/* provide a default scaler if not set by caller */ |
|
|
|
if (!i) { |
|
|
|
if (dstW < srcW && dstH < srcH) |
|
|
|
flags |= SWS_BICUBIC; |
|
|
|
else if (dstW > srcW && dstH > srcH) |
|
|
|
flags |= SWS_BICUBIC; |
|
|
|
else |
|
|
|
flags |= SWS_BICUBIC; |
|
|
|
c->flags = flags; |
|
|
|
} else if (i & (i - 1)) { |
|
|
|
av_log(c, AV_LOG_ERROR, |
|
|
|
"Exactly one scaler algorithm must be chosen, got %X\n", i); |
|
|
|
return AVERROR(EINVAL); |
|
|
|
} |
|
|
|
/* sanity check */ |
|
|
|