Opus decoder volume

sam131208
Posts: 15
Joined: Wed Nov 24, 2021 7:21 am

Opus decoder volume

Postby sam131208 » Mon Aug 29, 2022 9:03 am

你好:
opus 可以设置volume,请问是否可以提供volume的接口函数 opus_decoder_ctl()?

tempo.tian
Posts: 39
Joined: Wed Jun 22, 2022 12:10 pm

Re: Opus decoder volume

Postby tempo.tian » Wed Sep 14, 2022 3:18 am

opus目前和其他decoder往上提供相同的接口,因为不是每个decoder都支持设置volume,所以不会单独开出来特殊的API来设置音量
从代码上看opus设置gain也只是做了一次乘法
if(st->decode_gain)
{
opus_val32 gain;
gain = celt_exp2(MULT16_16_P15(QCONST16(6.48814081e-4f, 25), st->decode_gain));
for (i=0;i<frame_size*st->channels;i++)
{
opus_val32 x;
x = MULT16_32_P16(pcm,gain);
pcm = SATURATE(x, 32767);
}
}
相同的功能可以用优化后的代码来实现
比如i2s stream里面集成的音量调节alc模块
alc_volume_setup_process 这个API已经具有调节音量的功能了

Who is online

Users browsing this forum: No registered users and 64 guests