From 2dc2e4f5af7a43d2d977805ec340f653aa9481c0 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 19 Jan 2013 01:48:47 +0100 Subject: sws: Enable full chroma resolution when needed for ED dither Signed-off-by: Michael Niedermayer --- libswscale/utils.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'libswscale') diff --git a/libswscale/utils.c b/libswscale/utils.c index 8637195e16..b61a4aeb87 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -999,6 +999,20 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, c->flags = flags; } } + + if (flags & SWS_ERROR_DIFFUSION && !(flags & SWS_FULL_CHR_H_INT)) { + if(dstFormat == AV_PIX_FMT_BGR4_BYTE || + dstFormat == AV_PIX_FMT_RGB4_BYTE || + dstFormat == AV_PIX_FMT_BGR8 || + dstFormat == AV_PIX_FMT_RGB8) { + av_log(c, AV_LOG_DEBUG, + "Error diffusion dither is only supported in full chroma interpolation for destination format '%s'\n", + av_get_pix_fmt_name(dstFormat)); + flags |= SWS_FULL_CHR_H_INT; + c->flags = flags; + } + } + /* reuse chroma for 2 pixels RGB/BGR unless user wants full * chroma interpolation */ if (flags & SWS_FULL_CHR_H_INT && -- cgit v1.2.3