mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
Factorize stream id parsing.
Originally committed as revision 15556 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
6bc03a695b
commit
f080a7bd90
@ -614,6 +614,15 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
|||||||
return 0;
|
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)
|
static int avi_read_packet(AVFormatContext *s, AVPacket *pkt)
|
||||||
{
|
{
|
||||||
AVIContext *avi = s->priv_data;
|
AVIContext *avi = s->priv_data;
|
||||||
@ -756,12 +765,7 @@ resync:
|
|||||||
|
|
||||||
size= d[4] + (d[5]<<8) + (d[6]<<16) + (d[7]<<24);
|
size= d[4] + (d[5]<<8) + (d[6]<<16) + (d[7]<<24);
|
||||||
|
|
||||||
if( d[2] >= '0' && d[2] <= '9'
|
n= get_stream_idx(d+2);
|
||||||
&& d[3] >= '0' && d[3] <= '9'){
|
|
||||||
n= (d[2] - '0') * 10 + (d[3] - '0');
|
|
||||||
}else{
|
|
||||||
n= 100; //invalid stream id
|
|
||||||
}
|
|
||||||
//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);
|
//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)
|
if(i + size > avi->fsize || d[0]<0)
|
||||||
continue;
|
continue;
|
||||||
@ -776,12 +780,7 @@ resync:
|
|||||||
goto resync;
|
goto resync;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( d[0] >= '0' && d[0] <= '9'
|
n= get_stream_idx(d);
|
||||||
&& d[1] >= '0' && d[1] <= '9'){
|
|
||||||
n= (d[0] - '0') * 10 + (d[1] - '0');
|
|
||||||
}else{
|
|
||||||
n= 100; //invalid stream ID
|
|
||||||
}
|
|
||||||
|
|
||||||
//parse ##dc/##wb
|
//parse ##dc/##wb
|
||||||
if(n < s->nb_streams){
|
if(n < s->nb_streams){
|
||||||
|
Loading…
Reference in New Issue
Block a user