@ -292,6 +292,11 @@ static int amf_parse_object(AVFormatContext *s, AVStream *astream, AVStream *vst
acodec - > bit_rate = num_val * 1024.0 ;
}
if ( amf_type = = AMF_DATA_TYPE_OBJECT & & s - > nb_streams = = 1 & &
( ( ! acodec & & ! strcmp ( key , " audiocodecid " ) ) | |
( ! vcodec & & ! strcmp ( key , " videocodecid " ) ) ) )
s - > ctx_flags & = ~ AVFMTCTX_NOHEADER ; //If there is either audio/video missing, codecid will be an empty object
if ( ! strcmp ( key , " duration " ) | |
! strcmp ( key , " filesize " ) | |
! strcmp ( key , " width " ) | |
@ -312,10 +317,6 @@ static int amf_parse_object(AVFormatContext *s, AVStream *astream, AVStream *vst
} else if ( amf_type = = AMF_DATA_TYPE_NUMBER ) {
snprintf ( str_val , sizeof ( str_val ) , " %.f " , num_val ) ;
av_dict_set ( & s - > metadata , key , str_val , 0 ) ;
} else if ( amf_type = = AMF_DATA_TYPE_OBJECT ) {
if ( s - > nb_streams = = 1 & & ( ( ! acodec & & ! strcmp ( key , " audiocodecid " ) ) | | ( ! vcodec & & ! strcmp ( key , " videocodecid " ) ) ) ) {
s - > ctx_flags & = ~ AVFMTCTX_NOHEADER ; //If there is either audio/video missing, codecid will be an empty object
}
} else if ( amf_type = = AMF_DATA_TYPE_STRING )
av_dict_set ( & s - > metadata , key , str_val , 0 ) ;
}