aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-07-03 12:02:11 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-07-03 12:02:11 +0200
commitb0448e51235760b6ba8e9562c1233e43e818a1f7 (patch)
treea4bc536758c6b1e68f195978c1b752bdbdfc4613
parent3f0364327c32175221104799958702458be8fbd6 (diff)
parentbe3271009ef893fbed9640e8edbd771685fd957b (diff)
downloadffmpeg-b0448e51235760b6ba8e9562c1233e43e818a1f7.tar.gz
Merge commit 'be3271009ef893fbed9640e8edbd771685fd957b'
* commit 'be3271009ef893fbed9640e8edbd771685fd957b': jpeg2000: Define the maximum decomposition levels Conflicts: libavcodec/jpeg2000.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/jpeg2000.h8
-rw-r--r--libavcodec/jpeg2000dec.c2
2 files changed, 6 insertions, 4 deletions
diff --git a/libavcodec/jpeg2000.h b/libavcodec/jpeg2000.h
index 2ef29239a9..acdba62a07 100644
--- a/libavcodec/jpeg2000.h
+++ b/libavcodec/jpeg2000.h
@@ -67,7 +67,9 @@ enum Jpeg2000Quantsty { // quantization style
#define JPEG2000_MAX_CBLKW 64
#define JPEG2000_MAX_CBLKH 64
-#define JPEG2000_MAX_RESLEVELS 33
+
+#define JPEG2000_MAX_DECLEVELS 32
+#define JPEG2000_MAX_RESLEVELS (JPEG2000_MAX_DECLEVELS + 1)
// T1 flags
// flags determining significance of neighbor coefficients
@@ -143,8 +145,8 @@ typedef struct Jpeg2000CodingStyle {
} Jpeg2000CodingStyle;
typedef struct Jpeg2000QuantStyle {
- uint8_t expn[32 * 3]; // quantization exponent
- uint16_t mant[32 * 3]; // quantization mantissa
+ uint8_t expn[JPEG2000_MAX_DECLEVELS * 3]; // quantization exponent
+ uint16_t mant[JPEG2000_MAX_DECLEVELS * 3]; // quantization mantissa
uint8_t quantsty; // quantization style
uint8_t nguardbits; // number of guard bits
} Jpeg2000QuantStyle;
diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c
index 8e582aa2cf..38f0add307 100644
--- a/libavcodec/jpeg2000dec.c
+++ b/libavcodec/jpeg2000dec.c
@@ -396,7 +396,7 @@ static int get_qcx(Jpeg2000DecoderContext *s, int n, Jpeg2000QuantStyle *q)
x = bytestream2_get_be16u(&s->g);
q->expn[0] = x >> 11;
q->mant[0] = x & 0x7ff;
- for (i = 1; i < 32 * 3; i++) {
+ for (i = 1; i < JPEG2000_MAX_DECLEVELS * 3; i++) {
int curexpn = FFMAX(0, q->expn[0] - (i - 1) / 3);
q->expn[i] = curexpn;
q->mant[i] = q->mant[0];