diff --git a/src/opus_decoder.c b/src/opus_decoder.c index c47517cfec87e8b2ab4efc04793c80181673b0b5..c784233685f2cd9cacb40358756b8fd02254c911 100644 --- a/src/opus_decoder.c +++ b/src/opus_decoder.c @@ -65,16 +65,15 @@ OpusDecoder *opus_decoder_init(OpusDecoder *st, int Fs, int channels) { void *silk_dec; CELTDecoder *celt_dec; - int ret, silkDecSizeBytes, celtDecSizeBytes; + int ret, silkDecSizeBytes; - memset(st, 0, sizeof(OpusDecoder)); + memset(st, 0, opus_decoder_get_size(channels)); /* Initialize SILK encoder */ ret = silk_Get_Decoder_Size( &silkDecSizeBytes ); if( ret ) { return NULL; } silkDecSizeBytes = align(silkDecSizeBytes); - celtDecSizeBytes = celt_decoder_get_size(channels); st->silk_dec_offset = align(sizeof(OpusDecoder)); st->celt_dec_offset = st->silk_dec_offset+silkDecSizeBytes; silk_dec = (char*)st+st->silk_dec_offset; diff --git a/src/opus_encoder.c b/src/opus_encoder.c index 4bc495016436e68231fc890c1bc0fb4e076c11f2..f306606a74e14281028804339d91835d658db535 100644 --- a/src/opus_encoder.c +++ b/src/opus_encoder.c @@ -80,15 +80,14 @@ OpusEncoder *opus_encoder_init(OpusEncoder* st, int Fs, int channels) void *silk_enc; CELTEncoder *celt_enc; int err; - int ret, silkEncSizeBytes, celtEncSizeBytes; + int ret, silkEncSizeBytes; - memset(st, 0, sizeof(OpusEncoder)); + memset(st, 0, opus_encoder_get_size(channels)); /* Create SILK encoder */ ret = silk_Get_Encoder_Size( &silkEncSizeBytes ); if( ret ) return NULL; silkEncSizeBytes = align(silkEncSizeBytes); - celtEncSizeBytes = celt_encoder_get_size(channels); st->silk_enc_offset = align(sizeof(OpusEncoder)); st->celt_enc_offset = st->silk_enc_offset+silkEncSizeBytes; silk_enc = (char*)st+st->silk_enc_offset;