summaryrefslogtreecommitdiff
path: root/libavcodec/jpeg2000dwt.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2015-06-16 20:33:54 +0200
committerMichael Niedermayer <michaelni@gmx.at>2015-06-16 20:33:54 +0200
commit34121ca187340129851e2c41427b0e6db8820c8d (patch)
tree1f61450c018d9745dd96a887a4e0aef4d96becca /libavcodec/jpeg2000dwt.c
parent8294ec67b5b18c44d2406c77b6f6cd09201055c7 (diff)
downloadffmpeg-34121ca187340129851e2c41427b0e6db8820c8d.tar.gz
avcodec/jpeg2000dwt: Fix 9/7 IDWT for small sizes
Fixes Ticket4631 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/jpeg2000dwt.c')
-rw-r--r--libavcodec/jpeg2000dwt.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/libavcodec/jpeg2000dwt.c b/libavcodec/jpeg2000dwt.c
index a5eb0b77fc..dba8393e65 100644
--- a/libavcodec/jpeg2000dwt.c
+++ b/libavcodec/jpeg2000dwt.c
@@ -357,8 +357,11 @@ static void sr_1d97_float(float *p, int i0, int i1)
{
int i;
- if (i1 == i0 + 1)
+ if (i1 <= i0 + 1) {
+ if (i0 == 1)
+ p[1] *= F_LFTG_K/2;
return;
+ }
extend97_float(p, i0, i1);
@@ -429,8 +432,11 @@ static void sr_1d97_int(int32_t *p, int i0, int i1)
{
int i;
- if (i1 == i0 + 1)
+ if (i1 <= i0 + 1) {
+ if (i0 == 1)
+ p[1] = (p[1] * I_LFTG_K + (1<<16)) >> 17;
return;
+ }
extend97_int(p, i0, i1);