c++ - 为什么我的 libmpg123 构建不支持 float ?我如何启用它?

标签 c++ audio encoding floating-point mpeg

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

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

enter image description here

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

我在 Windows 7 x64 家庭高级版上运行它,源代码按原样下载和编译。

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

32bit float will be usual beginning with mpg123-1.7.0

我使用的是 1.14.4 版本

最佳答案

我不知道你的 1.14.4 版本是否已经支持浮点 - 上次我知道它“仅”被最后的 svn trunk 支持。

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

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

 /* 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

关于c++ - 为什么我的 libmpg123 构建不支持 float ?我如何启用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14452386/

相关文章:

c++ - 软件定义语言。当前音乐位置

python - 如何在 python 中生成音符或和弦?

python - 如何在Linux环境中解码丝绸文件并将其转换为PCM/WAV格式

java - Windows-1252 编码 - 显示不正确的字符

python循环在django模板中的特殊字符上中断

string - 为什么 wcout << "";可以,但是 wcout << string();不是?

C++ 代码仅在程序从终端运行时执行

c++ - Windows XP 下 CAtlStringMgr::GetInstance 崩溃

c++ - 找出是否在 C++ 项目中调用了函数?

javascript - 是否可以预取网页音频并尽早播放,使其与视频同步?是否有一个javascript命令?