diff options
Diffstat (limited to 'src/libffmpeg/libavcodec/qdm2.c')
-rw-r--r-- | src/libffmpeg/libavcodec/qdm2.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/libffmpeg/libavcodec/qdm2.c b/src/libffmpeg/libavcodec/qdm2.c index 98bec5cca..81d548386 100644 --- a/src/libffmpeg/libavcodec/qdm2.c +++ b/src/libffmpeg/libavcodec/qdm2.c @@ -538,7 +538,7 @@ static void fix_coding_method_array (int sb, int channels, sb_int8_array coding_ run = 1; case_val = 8; } else { - switch (switchtable[coding_method[ch][sb][j]]) { + switch (switchtable[coding_method[ch][sb][j]-8]) { case 0: run = 10; case_val = 10; break; case 1: run = 1; case_val = 16; break; case 2: run = 5; case_val = 24; break; @@ -1470,13 +1470,13 @@ static void qdm2_decode_fft_packets (QDM2Context *q) if (duration >= 0 && duration < 4) qdm2_fft_decode_tones(q, duration, &gb, unknown_flag); } else if (type == 31) { - for (i=0; i < 4; i++) - qdm2_fft_decode_tones(q, i, &gb, unknown_flag); + for (j=0; j < 4; j++) + qdm2_fft_decode_tones(q, j, &gb, unknown_flag); } else if (type == 46) { - for (i=0; i < 6; i++) - q->fft_level_exp[i] = get_bits(&gb, 6); - for (i=0; i < 4; i++) - qdm2_fft_decode_tones(q, i, &gb, unknown_flag); + for (j=0; j < 6; j++) + q->fft_level_exp[j] = get_bits(&gb, 6); + for (j=0; j < 4; j++) + qdm2_fft_decode_tones(q, j, &gb, unknown_flag); } } // Loop on B packets @@ -2008,8 +2008,10 @@ static int qdm2_decode_frame(AVCodecContext *avctx, { QDM2Context *s = avctx->priv_data; - if((buf == NULL) || (buf_size < s->checksum_size)) + if(!buf) return 0; + if(buf_size < s->checksum_size) + return -1; *data_size = s->channels * s->frame_size * sizeof(int16_t); |