From 6458a08700a2d6df2e1930dc59c0ace5e5a67164 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reimar=20D=C3=B6ffinger?= Date: Sun, 8 Apr 2012 15:11:13 +0200 Subject: [PATCH] vf_scale: ensure the palette is set for output. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since those are pseudo-palette formats, swscale does not write into data[1], swscale must initialize the palette properly itself. This lead to frames that actually decoded as all-gray before. Signed-off-by: Reimar Döffinger --- libavfilter/vf_scale.c | 3 +++ tests/ref/lavfi/pixfmts_crop | 2 +- tests/ref/lavfi/pixfmts_null | 2 +- tests/ref/lavfi/pixfmts_scale | 2 +- tests/ref/lavfi/pixfmts_vflip | 2 +- tests/ref/vsynth1/zmbv | 4 ++-- tests/ref/vsynth2/zmbv | 4 ++-- 7 files changed, 11 insertions(+), 8 deletions(-) diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c index 00f2ed1ee4..86be86f3c9 100644 --- a/libavfilter/vf_scale.c +++ b/libavfilter/vf_scale.c @@ -28,6 +28,7 @@ #include "libavutil/eval.h" #include "libavutil/mathematics.h" #include "libavutil/pixdesc.h" +#include "libavutil/imgutils.h" #include "libavutil/avassert.h" #include "libswscale/swscale.h" @@ -279,6 +280,8 @@ static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref) outpicref->video->h = outlink->h; outlink->out_buf = outpicref; + if(scale->output_is_pal) + ff_set_systematic_pal2(outpicref->data[1], outlink->format == PIX_FMT_PAL8 ? PIX_FMT_BGR8 : outlink->format); av_reduce(&outpicref->video->sample_aspect_ratio.num, &outpicref->video->sample_aspect_ratio.den, (int64_t)picref->video->sample_aspect_ratio.num * outlink->h * link->w, diff --git a/tests/ref/lavfi/pixfmts_crop b/tests/ref/lavfi/pixfmts_crop index b84e1b8191..7d135ab019 100644 --- a/tests/ref/lavfi/pixfmts_crop +++ b/tests/ref/lavfi/pixfmts_crop @@ -13,7 +13,7 @@ bgra 395c9f706fccda721471acaa5c96c16c gray 8c4850e66562a587a292dc728a65ea4a gray16be 257b4339925b0e672f552d8c9511f2c3 gray16le 67cf7b26cda55356cc25e0f4e42cc136 -pal8 d6c1b598244f41e2f005e42407d234d2 +pal8 0a7c8a7029b77619a6d847cf6f6ad0ac rgb24 3b90ed64b687d3dc186c6ef521dc71a8 rgb48be e6fd353c0eb9bea889423954414bea35 rgb48le 68a1723da11ce08b502d42e204376503 diff --git a/tests/ref/lavfi/pixfmts_null b/tests/ref/lavfi/pixfmts_null index 1bae05ee45..a69cd23f31 100644 --- a/tests/ref/lavfi/pixfmts_null +++ b/tests/ref/lavfi/pixfmts_null @@ -22,7 +22,7 @@ monob 668ebe8b8103b9046b251b2fa8a1d88f monow 9251497f3b0634f1165d12d5a289d943 nv12 e0af357888584d36eec5aa0f673793ef nv21 9a3297f3b34baa038b1f37cb202b512f -pal8 dec8ed2258ec89b8a796f21cad4df867 +pal8 09b4a6a3167576627fe0540994c3eb24 rgb0 1ed8e8027126d283e6ed7359e81c56e4 rgb24 b41eba9651e1b5fe386289b506188105 rgb444be 9e89db334568c6b2e3d5d0540f4ba960 diff --git a/tests/ref/lavfi/pixfmts_scale b/tests/ref/lavfi/pixfmts_scale index 0da314e7a9..7a12d083d8 100644 --- a/tests/ref/lavfi/pixfmts_scale +++ b/tests/ref/lavfi/pixfmts_scale @@ -22,7 +22,7 @@ monob cb62f31b701c6e987b574974d1b31e32 monow fd5d417ab7728acddffc06870661df61 nv12 4676d59db43d657dc12841f6bc3ab452 nv21 69c699510ff1fb777b118ebee1002f14 -pal8 6324fa058e1bc157ed7132bfe4022317 +pal8 0e7e9aee9f4f02f50cb72bee640843df rgb0 a01995946117e77b20e851506d64688c rgb24 13ff53ebeab74dc05492836f1cfbd2c1 rgb444be 46e466b2709f62b2fffc63708063eaaf diff --git a/tests/ref/lavfi/pixfmts_vflip b/tests/ref/lavfi/pixfmts_vflip index e09697ffe0..78b7474002 100644 --- a/tests/ref/lavfi/pixfmts_vflip +++ b/tests/ref/lavfi/pixfmts_vflip @@ -22,7 +22,7 @@ monob d0cf8732677a5360b6160133043590d8 monow ff9869d067ecb94eb9d90c9750c31fea nv12 046f00f598ce14d9854a3534a5c99114 nv21 01ea369dd2d0d3ed7451dc5c8d61497f -pal8 47ed19a7e128b0e33c25d2a463b0611a +pal8 f20e2ccf7e884d31a6766d45a73c2cdf rgb0 972c4ed97786aa30b7137b083b0e0afc rgb24 eaefabc168d0b14576bab45bc1e56e1e rgb444be 06722e03f8404e7d2226665ed2444a32 diff --git a/tests/ref/vsynth1/zmbv b/tests/ref/vsynth1/zmbv index 8e01707349..e49cb26401 100644 --- a/tests/ref/vsynth1/zmbv +++ b/tests/ref/vsynth1/zmbv @@ -1,3 +1,3 @@ 5112508 ./tests/data/vsynth1/zmbv.avi -cfbec364e41d70c9b177435b5655d8af *./tests/data/zmbv.vsynth1.out.yuv -stddev: 46.47 PSNR: 14.79 MAXDIFF: 129 bytes: 7603200/ 7603200 +4ad1ca9de7c65eab68a619c54fffaec8 *./tests/data/zmbv.vsynth1.out.yuv +stddev: 8.61 PSNR: 29.43 MAXDIFF: 64 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth2/zmbv b/tests/ref/vsynth2/zmbv index 4562b5aa57..6d7d6149b2 100644 --- a/tests/ref/vsynth2/zmbv +++ b/tests/ref/vsynth2/zmbv @@ -1,3 +1,3 @@ 5116352 ./tests/data/vsynth2/zmbv.avi -cfbec364e41d70c9b177435b5655d8af *./tests/data/zmbv.vsynth2.out.yuv -stddev: 42.07 PSNR: 15.65 MAXDIFF: 112 bytes: 7603200/ 7603200 +ee68a5292fd0745834246b4ec0d85e9b *./tests/data/zmbv.vsynth2.out.yuv +stddev: 8.12 PSNR: 29.94 MAXDIFF: 32 bytes: 7603200/ 7603200