1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
Originally committed as revision 12986 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Baptiste Coudurier 2008-04-26 13:08:16 +00:00
parent 9708d52ee8
commit ec39f7d855

View File

@ -2563,7 +2563,6 @@ static int decode_frame_mp3on4(AVCodecContext * avctx,
OUT_INT decoded_buf[MPA_FRAME_SIZE * MPA_MAX_CHANNELS]; OUT_INT decoded_buf[MPA_FRAME_SIZE * MPA_MAX_CHANNELS];
OUT_INT *outptr, *bp; OUT_INT *outptr, *bp;
int fsize; int fsize;
const unsigned char *start2 = buf, *start;
int fr, i, j, n; int fr, i, j, n;
int off = avctx->channels; int off = avctx->channels;
const uint8_t *coff = chan_offset[s->chan_cfg]; const uint8_t *coff = chan_offset[s->chan_cfg];
@ -2579,16 +2578,13 @@ static int decode_frame_mp3on4(AVCodecContext * avctx,
outptr = s->frames == 1 ? out_samples : decoded_buf; outptr = s->frames == 1 ? out_samples : decoded_buf;
for (fr = 0; fr < s->frames; fr++) { for (fr = 0; fr < s->frames; fr++) {
start = start2; fsize = AV_RB16(buf) >> 4;
fsize = AV_RB16(start) >> 4;
fsize = FFMIN3(fsize, len, MPA_MAX_CODED_FRAME_SIZE); fsize = FFMIN3(fsize, len, MPA_MAX_CODED_FRAME_SIZE);
start2 += fsize;
len -= fsize;
m = s->mp3decctx[fr]; m = s->mp3decctx[fr];
assert (m != NULL); assert (m != NULL);
// Get header // Get header
header = AV_RB32(start) | 0xfff00000; header = AV_RB32(buf) | 0xfff00000;
if (ff_mpa_check_header(header) < 0) { // Bad header, discard block if (ff_mpa_check_header(header) < 0) { // Bad header, discard block
*data_size = 0; *data_size = 0;
@ -2596,7 +2592,9 @@ static int decode_frame_mp3on4(AVCodecContext * avctx,
} }
ff_mpegaudio_decode_header(m, header); ff_mpegaudio_decode_header(m, header);
out_size += mp_decode_frame(m, decoded_buf, start, fsize); out_size += mp_decode_frame(m, decoded_buf, buf, fsize);
buf += fsize;
len -= fsize;
if(s->frames > 1) { if(s->frames > 1) {
n = m->avctx->frame_size*m->nb_channels; n = m->avctx->frame_size*m->nb_channels;