0

我正在尝试为 iPhone 编译最新的 WebRTC 版本。我不需要编译整个解决方案,我只需要编译 VAD 模块。

为此,我创建了一个 Xcode 项目,并尝试编译必要的源代码,但 *.s 文件及其汇编程序存在问题。

就像在 FFMPEG 库中一样,我知道我必须将汇编代码“翻译”为 iPhone 的 gcc 可以理解的汇编代码,但我不知道如何手动执行此操作。

我试图创建一个配置文件并在其中设置“as=gas-preprocessor.pl”(如在 FFMPEG 中),但不起作用。

任何想法?如何手动运行 gas-preprocessor.pl?

谢谢。

4

2 回答 2

1

我刚刚在 iOS 上完成它并且已经构建了 NS/VAD/AECM 和 AGC 的独立静态库,这里有一些提示给你,希望你成功:

1. 源文件列表

对于独立的 VAD 构建,您应该确保您的项目具有所有这些文件(不需要 .s 文件),并且我没有在header files此处列出,您会遇到一些header file can not be found错误,只需修复它就可以完成。)

webrtc_vad.c
vad_core.c
vad_filterbank.c
vad_gmm.c
vad_sp.c
real_fft.c
division_operations.c
complex_bit_reverse.c
cross_correlation.c
complex_fft.c
downsample_fast.c
vector_scaling_operations.c
get_scaling_square.c
energy.c
min_max_operations.c
spl_init.c

2.添加一个宏叫做 WEBRTC_MAC

我不确定为什么 Xcode 环境不提供这个宏,但应该定义它以确保WEBRTC_POSIX启用它。要定义此宏,请将其添加到新的头文件中,或者只是在 webrtc-header-files 中定义它。

3. 按照这些步骤在 iOS 上构建和设置 WebRTC-VAD 模块的静态库

notice, 不要使用 LLVM 2.0 编译 VAD 模块(使用 GCC 或 LLVM GCC)。cus' 在编译一些 webrtc 变量声明时,它可能会给您带来很多错误。

4. 使用 libwebrtc_vad.a

如果你走到这一步,事情就很容易了,只需包含webrtc_vad.h并使用这个模块提供的 API。就我而言,vad 工作正常。

希望我有所帮助。

于 2013-05-31T07:42:41.913 回答
0

尝试检查此链接https://groups.google.com/forum/?fromgroups=#!topic/discuss-webrtc/VJg-fk2-i_0我相信您必须正确设置内联汇编。我也在这个问题上,所以如果你想切换电子邮件或其他东西,请告诉我。

于 2012-10-12T21:34:54.887 回答