你好:
opus 可以设置volume,请问是否可以提供volume的接口函数 opus_decoder_ctl()?
Opus decoder volume
-
- Posts: 40
- Joined: Wed Jun 22, 2022 12:10 pm
Re: Opus decoder volume
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已经具有调节音量的功能了
从代码上看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 39 guests