summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2012-04-08 15:11:13 +0200
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2012-04-09 17:21:35 +0200
commit6458a08700a2d6df2e1930dc59c0ace5e5a67164 (patch)
treee20b1ea3e89fec58c28d7c42e75483265da1b920 /libavfilter
parent24eac3cff54a5828ba76bc1ad93b99724cde45c1 (diff)
vf_scale: ensure the palette is set for output.
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 <Reimar.Doeffinger@gmx.de>
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/vf_scale.c3
1 files changed, 3 insertions, 0 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,