diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-01-19 21:43:54 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-01-19 23:13:40 +0100 |
commit | aef5c0b68f31c4f4ff2654a8439dccf511c182df (patch) | |
tree | ad042d45fbba37c247e771c58e91cabca65febd5 | |
parent | f94220ac7ad099425b5fc35170ef411b03c84397 (diff) | |
download | ffmpeg-aef5c0b68f31c4f4ff2654a8439dccf511c182df.tar.gz |
sws: Check for unsupported combination of ED/FULL_CHR flags
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libswscale/utils.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/libswscale/utils.c b/libswscale/utils.c index b61a4aeb87..e96f255255 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -1000,17 +1000,24 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, } } - 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) { + if(dstFormat == AV_PIX_FMT_BGR4_BYTE || + dstFormat == AV_PIX_FMT_RGB4_BYTE || + dstFormat == AV_PIX_FMT_BGR8 || + dstFormat == AV_PIX_FMT_RGB8) { + if (flags & SWS_ERROR_DIFFUSION && !(flags & SWS_FULL_CHR_H_INT)) { 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; } + if (!(flags & SWS_ERROR_DIFFUSION) && (flags & SWS_FULL_CHR_H_INT)) { + av_log(c, AV_LOG_DEBUG, + "Ordered dither is not supported in full chroma interpolation for destination format '%s'\n", + av_get_pix_fmt_name(dstFormat)); + flags |= SWS_ERROR_DIFFUSION; + c->flags = flags; + } } /* reuse chroma for 2 pixels RGB/BGR unless user wants full |