@ -76,14 +76,23 @@ static av_cold int iss_read_header(AVFormatContext *s)
get_token ( pb , token , sizeof ( token ) ) ; //"IMA_ADPCM_Sound"
get_token ( pb , token , sizeof ( token ) ) ; //"IMA_ADPCM_Sound"
get_token ( pb , token , sizeof ( token ) ) ; //packet size
get_token ( pb , token , sizeof ( token ) ) ; //packet size
sscanf ( token , " %d " , & iss - > packet_size ) ;
if ( sscanf ( token , " %d " , & iss - > packet_size ) ! = 1 ) {
av_log ( s , AV_LOG_ERROR , " Failed parsing packet size \n " ) ;
return AVERROR_INVALIDDATA ;
}
get_token ( pb , token , sizeof ( token ) ) ; //File ID
get_token ( pb , token , sizeof ( token ) ) ; //File ID
get_token ( pb , token , sizeof ( token ) ) ; //out size
get_token ( pb , token , sizeof ( token ) ) ; //out size
get_token ( pb , token , sizeof ( token ) ) ; //stereo
get_token ( pb , token , sizeof ( token ) ) ; //stereo
sscanf ( token , " %d " , & stereo ) ;
if ( sscanf ( token , " %d " , & stereo ) ! = 1 ) {
av_log ( s , AV_LOG_ERROR , " Failed parsing stereo flag \n " ) ;
return AVERROR_INVALIDDATA ;
}
get_token ( pb , token , sizeof ( token ) ) ; //Unknown1
get_token ( pb , token , sizeof ( token ) ) ; //Unknown1
get_token ( pb , token , sizeof ( token ) ) ; //RateDivisor
get_token ( pb , token , sizeof ( token ) ) ; //RateDivisor
sscanf ( token , " %d " , & rate_divisor ) ;
if ( sscanf ( token , " %d " , & rate_divisor ) ! = 1 ) {
av_log ( s , AV_LOG_ERROR , " Failed parsing rate_divisor \n " ) ;
return AVERROR_INVALIDDATA ;
}
get_token ( pb , token , sizeof ( token ) ) ; //Unknown2
get_token ( pb , token , sizeof ( token ) ) ; //Unknown2
get_token ( pb , token , sizeof ( token ) ) ; //Version ID
get_token ( pb , token , sizeof ( token ) ) ; //Version ID
get_token ( pb , token , sizeof ( token ) ) ; //Size
get_token ( pb , token , sizeof ( token ) ) ; //Size