summaryrefslogtreecommitdiff
path: root/libswscale
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-01-19 21:43:54 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-01-19 23:13:40 +0100
commitaef5c0b68f31c4f4ff2654a8439dccf511c182df (patch)
treead042d45fbba37c247e771c58e91cabca65febd5 /libswscale
parentf94220ac7ad099425b5fc35170ef411b03c84397 (diff)
sws: Check for unsupported combination of ED/FULL_CHR flags
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libswscale')
-rw-r--r--libswscale/utils.c17
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