diff options
author | Baptiste Coudurier <baptiste.coudurier@gmail.com> | 2008-03-20 09:36:04 +0000 |
---|---|---|
committer | Baptiste Coudurier <baptiste.coudurier@gmail.com> | 2008-03-20 09:36:04 +0000 |
commit | d0ed455f19f5402c7ee2ff3392861fc40f945a85 (patch) | |
tree | 0a35c1db252fe54fdd964a9e761baf74fcb0f172 | |
parent | 10cac9f9c24247c045a2f74ce64690b7e45cdfca (diff) | |
download | ffmpeg-d0ed455f19f5402c7ee2ff3392861fc40f945a85.tar.gz |
correctly set avctx->frame_size for mp3on4 and mp3adu
Originally committed as revision 12508 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavcodec/mpegaudiodec.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c index 98f7f3b5ec..a90eb92f51 100644 --- a/libavcodec/mpegaudiodec.c +++ b/libavcodec/mpegaudiodec.c @@ -2301,12 +2301,15 @@ static int mp_decode_frame(MPADecodeContext *s, dprintf(s->avctx, "frame %d:\n", s->frame_count); switch(s->layer) { case 1: + avctx->frame_size = 384; nb_frames = mp_decode_layer1(s); break; case 2: + avctx->frame_size = 1152; nb_frames = mp_decode_layer2(s); break; case 3: + avctx->frame_size = s->lsf ? 576 : 1152; default: nb_frames = mp_decode_layer3(s); @@ -2395,20 +2398,6 @@ retry: avctx->channels = s->nb_channels; avctx->bit_rate = s->bit_rate; avctx->sub_id = s->layer; - switch(s->layer) { - case 1: - avctx->frame_size = 384; - break; - case 2: - avctx->frame_size = 1152; - break; - case 3: - if (s->lsf) - avctx->frame_size = 576; - else - avctx->frame_size = 1152; - break; - } if(s->frame_size<=0 || s->frame_size > buf_size){ av_log(avctx, AV_LOG_ERROR, "incomplete frame\n"); @@ -2472,7 +2461,7 @@ static int decode_frame_adu(AVCodecContext * avctx, avctx->bit_rate = s->bit_rate; avctx->sub_id = s->layer; - avctx->frame_size=s->frame_size = len; + s->frame_size = len; if (avctx->parse_only) { out_size = buf_size; @@ -2635,7 +2624,6 @@ static int decode_frame_mp3on4(AVCodecContext * avctx, /* update codec info */ avctx->sample_rate = s->mp3decctx[0]->sample_rate; - avctx->frame_size= buf_size; avctx->bit_rate = 0; for (i = 0; i < s->frames; i++) avctx->bit_rate += s->mp3decctx[i]->bit_rate; |