From f080a7bd90bd093820156d2eefcad027f7139ea1 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 4 Oct 2008 21:57:01 +0000 Subject: [PATCH] Factorize stream id parsing. Originally committed as revision 15556 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/avidec.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/libavformat/avidec.c b/libavformat/avidec.c index c9c27e262d..1a9a11c439 100644 --- a/libavformat/avidec.c +++ b/libavformat/avidec.c @@ -614,6 +614,15 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap) return 0; } +static int get_stream_idx(int *d){ + if( d[0] >= '0' && d[0] <= '9' + && d[1] >= '0' && d[1] <= '9'){ + return (d[0] - '0') * 10 + (d[1] - '0'); + }else{ + return 100; //invalid stream ID + } +} + static int avi_read_packet(AVFormatContext *s, AVPacket *pkt) { AVIContext *avi = s->priv_data; @@ -756,12 +765,7 @@ resync: size= d[4] + (d[5]<<8) + (d[6]<<16) + (d[7]<<24); - if( d[2] >= '0' && d[2] <= '9' - && d[3] >= '0' && d[3] <= '9'){ - n= (d[2] - '0') * 10 + (d[3] - '0'); - }else{ - n= 100; //invalid stream id - } + n= get_stream_idx(d+2); //av_log(NULL, AV_LOG_DEBUG, "%X %X %X %X %X %X %X %X %"PRId64" %d %d\n", d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], i, size, n); if(i + size > avi->fsize || d[0]<0) continue; @@ -776,12 +780,7 @@ resync: goto resync; } - if( d[0] >= '0' && d[0] <= '9' - && d[1] >= '0' && d[1] <= '9'){ - n= (d[0] - '0') * 10 + (d[1] - '0'); - }else{ - n= 100; //invalid stream ID - } + n= get_stream_idx(d); //parse ##dc/##wb if(n < s->nb_streams){