我有一个简单的:#define log(text, ...) fprintf(stderr, "stuff before" text "stuff after", ## __VA_ARGS__);触发:error: ISO C99 requires at least one argument for the "..." in a variadic macro [-Werror]
应该使用-std=c11而-Wno-variadic-macros不是修复此错误/警告?
#pragma GCC system_header在定义日志之前抛出头文件修复了这个问题(没有必要测试输出的二进制文件是否有效......)但这看起来有点hacky,我不完全确定这个的后果.
以下是预期行为的示例:https://stackoverflow.com/a/31327708/5698848
-Wvariadic-macros
Warn if variadic macros are used in ISO C90 mode, or if the GNU alternate syntax is used in ISO C99 mode.
This is enabled by either -Wpedantic or -Wtraditional.
To inhibit the warning messages, use …Run Code Online (Sandbox Code Playgroud) 我知道如何用atempo改变速度,但是音频文件有点失真,而且我找不到改变音调的可靠方法。(例如,将速度和音调提高140%)
Sox有一个速度选项,但会截断音量,并且不如ffmpeg广泛可用。mplayer有一个速度选项,可以很好地运行,但是如果没有其他库,我将无法输出。
我似乎了解ffmpeg没有办法改变音调(也许最近才这样做?),但是有办法改变频率或其他一些标志来模仿改变音调吗?看起来很远,找不到合适的解决方案。
编辑:asetrate:48k * 1.4(假设最初为48k)似乎不起作用,但是失真和音高实际上并没有太大变化。
Edit2:https ://superuser.com/a/1076762 这个答案有点奏效,但是质量比sox speed 1.4选项低得多