Commit e2fa5cf4 authored by Zdenek Kabelac's avatar Zdenek Kabelac Committed by Diego Biurrun

Do not scan for MP3 header after the given buffer and return skipped

bytes along with consumed bytes on successful decoding.
patch by Zdenek Kabelac, zdenek.kabelac gmail com

Originally committed as revision 18736 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent c7279693
......@@ -2263,6 +2263,7 @@ static int decode_frame(AVCodecContext * avctx,
MPADecodeContext *s = avctx->priv_data;
uint32_t header;
int out_size;
int skipped = 0;
OUT_INT *out_samples = data;
retry:
......@@ -2272,7 +2273,8 @@ retry:
header = AV_RB32(buf);
if(ff_mpa_check_header(header) < 0){
buf++;
// buf_size--;
buf_size--;
skipped++;
av_log(avctx, AV_LOG_ERROR, "Header missing skipping one byte.\n");
goto retry;
}
......@@ -2303,7 +2305,7 @@ retry:
}else
av_log(avctx, AV_LOG_DEBUG, "Error while decoding MPEG audio frame.\n"); //FIXME return -1 / but also return the number of bytes consumed
s->frame_size = 0;
return buf_size;
return buf_size + skipped;
}
static void flush(AVCodecContext *avctx){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment