@ -438,6 +438,7 @@ static const AVCodecTag mp4_audio_types[] = {
int ff_mp4_read_dec_config_descr ( AVFormatContext * fc , AVStream * st , AVIOContext * pb )
int ff_mp4_read_dec_config_descr ( AVFormatContext * fc , AVStream * st , AVIOContext * pb )
{
{
int len , tag ;
int len , tag ;
int ret ;
int object_type_id = avio_r8 ( pb ) ;
int object_type_id = avio_r8 ( pb ) ;
avio_r8 ( pb ) ; /* stream type */
avio_r8 ( pb ) ; /* stream type */
avio_rb24 ( pb ) ; /* buffer size db */
avio_rb24 ( pb ) ; /* buffer size db */
@ -459,7 +460,8 @@ int ff_mp4_read_dec_config_descr(AVFormatContext *fc, AVStream *st, AVIOContext
av_free ( st - > codec - > extradata ) ;
av_free ( st - > codec - > extradata ) ;
if ( ff_alloc_extradata ( st - > codec , len ) )
if ( ff_alloc_extradata ( st - > codec , len ) )
return AVERROR ( ENOMEM ) ;
return AVERROR ( ENOMEM ) ;
avio_read ( pb , st - > codec - > extradata , len ) ;
if ( ( ret = avio_read ( pb , st - > codec - > extradata , len ) ) ! = len )
return ret < 0 ? ret : AVERROR_INVALIDDATA ;
if ( st - > codec - > codec_id = = AV_CODEC_ID_AAC ) {
if ( st - > codec - > codec_id = = AV_CODEC_ID_AAC ) {
MPEG4AudioConfig cfg = { 0 } ;
MPEG4AudioConfig cfg = { 0 } ;
avpriv_mpeg4audio_get_config ( & cfg , st - > codec - > extradata ,
avpriv_mpeg4audio_get_config ( & cfg , st - > codec - > extradata ,