summaryrefslogtreecommitdiff
path: root/libavcodec/4xm.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2003-06-01 10:13:29 +0000
committerMichael Niedermayer <michaelni@gmx.at>2003-06-01 10:13:29 +0000
commit5be8a3737bae9d090b8d893135c292f0bd4e85b0 (patch)
tree815c682b4cd22bbdb8f2ba1be9164dd125d0b9d5 /libavcodec/4xm.c
parent8809cfee0a6faa61055dfb2229879a822267a22b (diff)
downloadffmpeg-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.c23
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);