diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2003-06-01 10:13:29 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2003-06-01 10:13:29 +0000 |
commit | 5be8a3737bae9d090b8d893135c292f0bd4e85b0 (patch) | |
tree | 815c682b4cd22bbdb8f2ba1be9164dd125d0b9d5 /libavcodec/4xm.c | |
parent | 8809cfee0a6faa61055dfb2229879a822267a22b (diff) | |
download | ffmpeg-5be8a3737bae9d090b8d893135c292f0bd4e85b0.tar.gz |
10l (array[-1] ...)
Originally committed as revision 1924 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/4xm.c')
-rw-r--r-- | libavcodec/4xm.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/libavcodec/4xm.c b/libavcodec/4xm.c index 7dac0d3982..d66718095d 100644 --- a/libavcodec/4xm.c +++ b/libavcodec/4xm.c @@ -492,22 +492,23 @@ static uint8_t *read_huffman_tables(FourXContext *f, uint8_t * const buf){ // printf("%2X", ptr[j]); for(j=257; j<512; j++){ - int smallest[2]= {-1,-1}; + int min_freq[2]= {256*256, 256*256}; + int smallest[2]= {0, 0}; int i; for(i=0; i<j; i++){ if(frequency[i] == 0) continue; - if(frequency[i] < frequency[ smallest[1] ]){ - if(frequency[i] < frequency[ smallest[0] ]){ - smallest[1]= smallest[0]; - smallest[0]= i; - }else - smallest[1]= i; + if(frequency[i] < min_freq[1]){ + if(frequency[i] < min_freq[0]){ + min_freq[1]= min_freq[0]; smallest[1]= smallest[0]; + min_freq[0]= frequency[i];smallest[0]= i; + }else{ + min_freq[1]= frequency[i];smallest[1]= i; + } } } + if(min_freq[1] == 256*256) break; - if(smallest[1] == -1) break; - - frequency[j]= frequency[ smallest[0] ] + frequency[ smallest[1] ]; + frequency[j]= min_freq[0] + min_freq[1]; flag[ smallest[0] ]= 0; flag[ smallest[1] ]= 1; up[ smallest[0] ]= @@ -556,7 +557,7 @@ static int decode_i_frame(FourXContext *f, uint8_t *buf, int length){ init_get_bits(&f->gb, buf + 4, 8*bitstream_size); prestream_size= length + buf - prestream; - + f->bitstream_buffer= av_fast_realloc(f->bitstream_buffer, &f->bitstream_buffer_size, prestream_size + FF_INPUT_BUFFER_PADDING_SIZE); f->dsp.bswap_buf((uint32_t*)f->bitstream_buffer, (uint32_t*)prestream, prestream_size/4); init_get_bits(&f->pre_gb, f->bitstream_buffer, 8*prestream_size); |