@ -166,7 +166,7 @@ static int codec_config_obu(void *s, IAMFContext *c, AVIOContext *pb, int len)
uint8_t * buf ;
enum AVCodecID avcodec_id ;
unsigned codec_config_id , nb_samples , codec_id ;
int16_t seek_preroll ;
int16_t audio_roll_distance ;
int ret ;
buf = av_malloc ( len ) ;
@ -186,7 +186,7 @@ static int codec_config_obu(void *s, IAMFContext *c, AVIOContext *pb, int len)
codec_config_id = ffio_read_leb ( pbc ) ;
codec_id = avio_rb32 ( pbc ) ;
nb_samples = ffio_read_leb ( pbc ) ;
seek_preroll = avio_rb16 ( pbc ) ;
audio_roll_distance = avio_rb16 ( pbc ) ;
switch ( codec_id ) {
case MKBETAG ( ' O ' , ' p ' , ' u ' , ' s ' ) :
@ -225,7 +225,7 @@ static int codec_config_obu(void *s, IAMFContext *c, AVIOContext *pb, int len)
codec_config - > codec_config_id = codec_config_id ;
codec_config - > codec_id = avcodec_id ;
codec_config - > nb_samples = nb_samples ;
codec_config - > seek_preroll = seek_preroll ;
codec_config - > audio_roll_distance = audio_roll_distance ;
switch ( codec_id ) {
case MKBETAG ( ' O ' , ' p ' , ' u ' , ' s ' ) :
@ -683,7 +683,7 @@ static int audio_element_obu(void *s, IAMFContext *c, AVIOContext *pb, int len)
substream - > codecpar - > codec_id = codec_config - > codec_id ;
substream - > codecpar - > frame_size = codec_config - > nb_samples ;
substream - > codecpar - > sample_rate = codec_config - > sample_rate ;
substream - > codecpar - > seek_preroll = - codec_config - > seek_preroll * codec_config - > nb_samples ;
substream - > codecpar - > seek_preroll = - codec_config - > audio_roll_distance * codec_config - > nb_samples ;
switch ( substream - > codecpar - > codec_id ) {
case AV_CODEC_ID_AAC :