Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-10-27 18:26:39 +0400
committerMichael Niedermayer <michaelni@gmx.at>2012-10-27 18:29:24 +0400
commit7de21960292c15e544807f09d1bfc9935a88e5ce (patch)
tree7c41368ed0a7a1102c8fae639a9c901877f3efff /libswscale
parent95760b33e7a4fb06686922e93e8c6b5730e85d3f (diff)
sws: fix extreem downscaling
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libswscale')
-rw-r--r--libswscale/utils.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libswscale/utils.c b/libswscale/utils.c
index 81da98d651..2fa1c13ba6 100644
--- a/libswscale/utils.c
+++ b/libswscale/utils.c
@@ -230,7 +230,7 @@ static int initFilter(int16_t **outFilter, int32_t **filterPos,
int minFilterSize;
int64_t *filter = NULL;
int64_t *filter2 = NULL;
- const int64_t fone = 1LL << 54;
+ const int64_t fone = 1LL << (54 - FFMIN(av_log2(srcW/dstW), 8));
int ret = -1;
emms_c(); // FIXME should not be required but IS (even for non-MMX versions)
@@ -356,7 +356,7 @@ static int initFilter(int16_t **outFilter, int32_t **filterPos,
(-12 * B - 48 * C) * d +
(8 * B + 24 * C) * (1 << 30);
}
- coeff *= fone >> (30 + 24);
+ coeff /= (1LL<<54)/fone;
}
#if 0
else if (flags & SWS_X) {