Files
FFmpeg/tests
Ramiro Polla fcaafd2c11 swscale/tests/swscale: add -scaler/-scaler_sub parameters to set scaler algorithm
The -unscaled parameter has been removed in favour of "-scaler none".

Some legacy scalers cannot be selected with these options (i.e.: SWS_X
and SWS_FAST_BILINEAR). To test these, the -flags parameter shoule be
used instead.

This option sets the scaler/scaler_sub fields in SwsContext. There is a
comment about these fields in struct SwsContext:

  Note: Does not affect the legacy (stateful) API.

This comment is not entirely correct, since scaler/scaler_sub are taken
into consideration to select the algorithm, but that doesn't update the
flags field, which is still used to select implementations:

libswscale/x86/swscale.c:574:            if (c->opts.flags & SWS_FAST_BILINEAR && c->canMMXEXTBeUsed) {
libswscale/ppc/swscale_vsx.c:2033:            if (c->opts.flags & SWS_FAST_BILINEAR && c->opts.dst_w >= c->opts.src_w && c->chrDstW >= c->chrSrcW) {
libswscale/swscale_unscaled.c:2465:        && (!needsDither || (c->opts.flags&(SWS_FAST_BILINEAR|SWS_POINT))))
libswscale/swscale_unscaled.c:2650:    if (c->opts.flags&(SWS_FAST_BILINEAR|SWS_POINT)) {
libswscale/utils.c:1279:            && !(sws->flags & SWS_FAST_BILINEAR)
libswscale/utils.c:1388:         (flags & SWS_FAST_BILINEAR)))
libswscale/utils.c:1417:            && (flags & SWS_FAST_BILINEAR)) {
libswscale/utils.c:1437:    if (flags & SWS_FAST_BILINEAR) {
libswscale/utils.c:1648:        if (c->canMMXEXTBeUsed && (flags & SWS_FAST_BILINEAR)) {
libswscale/swscale.c:678:            if (c->opts.flags & SWS_FAST_BILINEAR) {

Sponsored-by: Sovereign Tech Fund
Signed-off-by: Ramiro Polla <ramiro.polla@gmail.com>
2026-06-05 03:00:31 +02:00
..