1

来自libmpg123 源文件中的good_enc函数。format.c它用于检查当前构建是否支持指定的编码。

下图取自调试会话,在此期间它检查是否MPG123_ENC_FLOAT_32支持 (enc == 512, 等效于 ) 32 位浮点编码。

在此处输入图像描述

如图所示,由于某种原因,我的构建不支持 32 位浮点编码。

我在 Windows 7 x64 Home Premium 上运行它,源代码按原样下载和编译。

有没有我错过的配置?从网站上的文档看来,

32 位浮点数通常以 mpg123-1.7.0 开头

我正在使用版本 1.14.4

4

1 回答 1

2

我不知道你的 1.14.4 版本是否已经支持浮点 - 上次我知道它是由最后一个 svn trunk "only" 支持的。

所以也许从那里拉出来并再次编译。

无论如何,在默认来源中包含一个“廉价黑客”,以强制启用您的浮点。

 /* Simple hack to enable floating point output. */
if(argc >= 4 && !strcmp(argv[3], "f32")) mpg123_param(mh, MPG123_ADD_FLAGS, MPG123_FORCE_FLOAT, 0.);

如此处所示:http ://www.mpg123.de/api/mpg123_ to _wav_8c_source.shtml

于 2013-01-22T06:49:44.403 回答