现象描述
配置的压缩MP3码率小于64kbps时,压缩后的数据是异常的。
原因分析
shine_initialise 函数里面计算avg_slots_per_frame 时存在精度丢失。
解决方式
/* Compute default encoding values. */
shine_global_config *shine_initialise(shine_config_t *pub_config)
{
int avg_slots_per_frame;
shine_global_config *config;
if (shine_check_config(pub_config->wave.samplerate, pub_config->mpeg.bitr) < 0)
return NULL;
config = calloc(1, sizeof(shine_global_config));
if (config == NULL)
return config;
shine_subband_initialise(config);
shine_mdct_initialise(config);
shine_loop_initialise(config);
/* Copy public config. */
config->wave.channels = pub_config->wave.channels;
config->wave.samplerate = pub_config->wave


1025

被折叠的 条评论
为什么被折叠?



