fixed one overflow problem

Originally committed as revision 553 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Fabrice Bellard 2002-05-20 21:15:53 +00:00
parent 754ebe3465
commit 747a67fbab

View File

@ -1,6 +1,6 @@
/* /*
* MPEG Audio decoder * MPEG Audio decoder
* Copyright (c) 2001 Gerard Lantau. * Copyright (c) 2001, 2002 Gerard Lantau.
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
@ -127,7 +127,7 @@ static VLC huff_quad_vlc[2];
static UINT16 band_index_long[9][23]; static UINT16 band_index_long[9][23];
/* XXX: free when all decoders are closed */ /* XXX: free when all decoders are closed */
#define TABLE_4_3_SIZE (8191 + 16) #define TABLE_4_3_SIZE (8191 + 16)
static UINT8 *table_4_3_exp; static INT8 *table_4_3_exp;
#if FRAC_BITS <= 15 #if FRAC_BITS <= 15
static UINT16 *table_4_3_value; static UINT16 *table_4_3_value;
#else #else
@ -1955,7 +1955,7 @@ static void compute_imdct(MPADecodeContext *s,
} }
} }
#ifdef DEBUG #if defined(DEBUG)
void sample_dump(int fnum, INT32 *tab, int n) void sample_dump(int fnum, INT32 *tab, int n)
{ {
static FILE *files[16], *f; static FILE *files[16], *f;
@ -2168,7 +2168,7 @@ static int mp_decode_layer3(MPADecodeContext *s)
} }
g->scale_factors[j++] = 0; g->scale_factors[j++] = 0;
} }
#ifdef DEBUG #if defined(DEBUG)
{ {
printf("scfsi=%x gr=%d ch=%d scale_factors:\n", printf("scfsi=%x gr=%d ch=%d scale_factors:\n",
g->scfsi, gr, ch); g->scfsi, gr, ch);
@ -2225,7 +2225,7 @@ static int mp_decode_layer3(MPADecodeContext *s)
/* XXX: should compute exact size */ /* XXX: should compute exact size */
for(;j<40;j++) for(;j<40;j++)
g->scale_factors[j] = 0; g->scale_factors[j] = 0;
#ifdef DEBUG #if defined(DEBUG)
{ {
printf("gr=%d ch=%d scale_factors:\n", printf("gr=%d ch=%d scale_factors:\n",
gr, ch); gr, ch);
@ -2242,8 +2242,8 @@ static int mp_decode_layer3(MPADecodeContext *s)
if (huffman_decode(s, g, exponents, if (huffman_decode(s, g, exponents,
bits_pos + g->part2_3_length) < 0) bits_pos + g->part2_3_length) < 0)
return -1; return -1;
#if defined(DEBUG) && 0 #if defined(DEBUG)
sample_dump(3, g->sb_hybrid, 576); sample_dump(0, g->sb_hybrid, 576);
#endif #endif
/* skip extension bits */ /* skip extension bits */
@ -2267,7 +2267,7 @@ static int mp_decode_layer3(MPADecodeContext *s)
g = &granules[ch][gr]; g = &granules[ch][gr];
reorder_block(s, g); reorder_block(s, g);
#ifdef DEBUG #if defined(DEBUG)
sample_dump(0, g->sb_hybrid, 576); sample_dump(0, g->sb_hybrid, 576);
#endif #endif
compute_antialias(s, g); compute_antialias(s, g);