lavfi/vf_scale: use default swscale flags for scaler

Currently the default swscale flags for simple filter graph is bicubic,
however for complex filter graph it uses bilinear as decleared in scale
filter.

$ffmpeg -v verbose -i input.mp4 -vf format=yuv420p,scale=800x600 -an -f null -
[Parsed_scale_1 @ 0x7f86d2c160c0] w:1920 h:1080 fmt:yuv420p sar:0/1 -> w:800 h:600 fmt:yuv420p sar:0/1 flags:0x4

$ffmpeg -v verbose -i input.mp4 -filter_complex format=yuv420p,scale=800x600 -an -f null -
[Parsed_scale_1 @ 0x7f8779e046c0] w:1920 h:1080 fmt:yuv420p sar:0/1 -> w:800 h:600 fmt:yuv420p sar:0/1 flags:0x2

Use default swscale flags (bicubic currently) for scale filter.
- Remove flags="bilinear" from vf_scale
- Update the FATE refs

Signed-off-by: Linjie Fu <linjie.justin.fu@gmail.com>
pull/364/head
Linjie Fu 3 years ago
parent 9dbf95f209
commit 9f14396a51
  1. 4
      libavfilter/vf_scale.c
  2. 10
      tests/ref/fate/filter-scale2ref_keep_aspect

@ -313,7 +313,7 @@ static av_cold int init_dict(AVFilterContext *ctx, AVDictionary **opts)
scale->flags = 0; scale->flags = 0;
if (scale->flags_str) { if (scale->flags_str && *scale->flags_str) {
const AVClass *class = sws_get_class(); const AVClass *class = sws_get_class();
const AVOption *o = av_opt_find(&class, "sws_flags", NULL, 0, const AVOption *o = av_opt_find(&class, "sws_flags", NULL, 0,
AV_OPT_SEARCH_FAKE_OBJ); AV_OPT_SEARCH_FAKE_OBJ);
@ -900,7 +900,7 @@ static const AVOption scale_options[] = {
{ "width", "Output video width", OFFSET(w_expr), AV_OPT_TYPE_STRING, .flags = TFLAGS }, { "width", "Output video width", OFFSET(w_expr), AV_OPT_TYPE_STRING, .flags = TFLAGS },
{ "h", "Output video height", OFFSET(h_expr), AV_OPT_TYPE_STRING, .flags = TFLAGS }, { "h", "Output video height", OFFSET(h_expr), AV_OPT_TYPE_STRING, .flags = TFLAGS },
{ "height","Output video height", OFFSET(h_expr), AV_OPT_TYPE_STRING, .flags = TFLAGS }, { "height","Output video height", OFFSET(h_expr), AV_OPT_TYPE_STRING, .flags = TFLAGS },
{ "flags", "Flags to pass to libswscale", OFFSET(flags_str), AV_OPT_TYPE_STRING, { .str = "bilinear" }, .flags = FLAGS }, { "flags", "Flags to pass to libswscale", OFFSET(flags_str), AV_OPT_TYPE_STRING, { .str = "" }, .flags = FLAGS },
{ "interl", "set interlacing", OFFSET(interlaced), AV_OPT_TYPE_BOOL, {.i64 = 0 }, -1, 1, FLAGS }, { "interl", "set interlacing", OFFSET(interlaced), AV_OPT_TYPE_BOOL, {.i64 = 0 }, -1, 1, FLAGS },
{ "size", "set video size", OFFSET(size_str), AV_OPT_TYPE_STRING, {.str = NULL}, 0, FLAGS }, { "size", "set video size", OFFSET(size_str), AV_OPT_TYPE_STRING, {.str = NULL}, 0, FLAGS },
{ "s", "set video size", OFFSET(size_str), AV_OPT_TYPE_STRING, {.str = NULL}, 0, FLAGS }, { "s", "set video size", OFFSET(size_str), AV_OPT_TYPE_STRING, {.str = NULL}, 0, FLAGS },

@ -7,8 +7,8 @@
#dimensions 0: 160x120 #dimensions 0: 160x120
#sar 0: 1/1 #sar 0: 1/1
#stream#, dts, pts, duration, size, hash #stream#, dts, pts, duration, size, hash
0, 0, 0, 1, 57600, 9a19c23dc3a557786840d0098606d5f1 0, 0, 0, 1, 57600, 65fe9892ad710cc5763b04b390327d40
0, 1, 1, 1, 57600, e6fbdabaf1bb0d28afc648ed4d27e9f0 0, 1, 1, 1, 57600, 5e8d4524bc8889afa8769e851e998bc0
0, 2, 2, 1, 57600, 52924ed0a751214c50fb2e7a626c8cc5 0, 2, 2, 1, 57600, 8f5e0e58d1f4c2104b82ef7a16850f1e
0, 3, 3, 1, 57600, 67d5fd6ee71793f1cf8794d1c27afdce 0, 3, 3, 1, 57600, cfe4142845e1445d33748493faa63cda
0, 4, 4, 1, 57600, 85f7775f7b01afd369fc8919dc759d30 0, 4, 4, 1, 57600, bb491f3b01788773fb6129aef0f0abd2

Loading…
Cancel
Save