2

我正在尝试为 pjsip android 构建 g729 编解码器。
G729Android 的 PJSIP 构建链接

我点击了链接,我能够构建 g729project。构建成功后会生成三个目录,分别是include、shared和lib。因此,当尝试使用 g729codec 构建路径构建 android pjsip 项目时,pjsip 无法识别 g729build 目录。

PJSIP 说按照 belladone 指定的 g729 的 android 构建说明进行操作。但我找不到任何内容。那么如何解决呢?

4

3 回答 3

4

是的,使用该链接构建该链接非常不清楚G729。如果您想以G729其他方式构建(相同的颠茄源),您可以遵循:-

1.从repo下载最新的PJSIP。

2.从https://github.com/saravnandm/pjsip2.5-g729codec下载补丁

3.将你的PJSIP项目中的每个文件作为给定补丁的目录。

4.按照说明应用更改pjproject-2.5.diff

5.现在构建。

如果您需要更多帮助评论。

于 2017-10-08T11:44:52.240 回答
3

Belldone Communications中,没有明确说明如何使用 CMake 为每个Target平台构建 G729 项目。

第 1 步: CMAKE 下载链接=> https://cmake.org/download/

只需使用上面的链接为您的平台(Linux/Mac/Windows 操作系统)下载 Cmake 软件。

对于 Linux,下载 cmake tar 文件并解压到所需路径。转到[Cmake 路径]/bin/ 路径。右键单击cmake-gui应用程序并运行它。

第二步: 下载Belldone通信的G729项目

i)选择您下载的 g729 项目文件夹作为源代码路径

ii)为 cmake 二进制文件创建空文件夹并选择它来构建二进制文件。它将生成用于为您指定的平台构建项目的生成文件。

注意:为最新的 PJSIP 2.7安装Android-ndk-r15c

iii)在 CMAKE 中指定以下名称和值

CMAKE_C_FLAGS很重要。使用与构建 PJSIP 2.7 相同的 CFLAG。

CMAKE_C_FLAGS = -gcc-toolchain /home/application/Desktop/pjsip2_7/NDK/android-ndk-r15c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 -fpic -ffunction-sections -funwind-tables -Wno -invalid-command-line-argument -Wno-unused-command-line-argument -no-canonical-prefixes -fno-integrated-as -target armv7-none-linux-androideabi26 -march=armv7-a -mfloat-abi= softfp -mfpu=vfpv3-d16 -mthumb -Os -DNDEBUG -Ijni -DANDROID -D__ANDROID_API__=26 -Wa,--noexecstack -Wformat -Werror=format-security --sysroot /home/application/Desktop/pjsip2_7/NDK/android -ndk-r15c/platforms/android-26/arch-arm/ -isystem /home/application/Desktop/pjsip2_7/NDK/android-ndk-r15c/sysroot/usr/include/arm-linux-androideabi -I/home/应用程序/桌面/pjsip2_7/NDK/android-ndk-r15c//sources/cxx-stl/llvm-libc++/include

注意:比较您的 --sysroot 路径与上述路径相同。

CMAKE_AR, CMAKE_LINKER, CMAKE_NM, CMAKE_OBJCOPY, CMAKE_OBJDUMP, CMAKE_RANLIB, CMAKE_STRIP 在以下android ndk路径中可用

/android-ndk-r15c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/

CMAKE_C_COMPILER = /android-ndk-r15c/toolchains/llvm/prebuilt/linux-x86_64/bin/clang/

CMAKE_INSTALL_PREFIX = 你想在哪里创建输出库文件,稍后用于构建 pjsip。在构建 PJSIP --with-bcg729 = CMAKE_INSTALL_PREFIX 路径时使用相同的路径。

CMAKE_SKIP_INSTALL_RPATH = ON

ENABLE_SHARED = 开

ENABLE_STATIC = ON

ENABLE_TESTS = ON

CMAKE_BUILD_TYPE = 发布

指定上述配置后,您可以配置和生成 Cmake 输出。

然后使用 Cmake App 中指定的终端转到二进制路径。运行以下命令。

make && make install

最后在 CMAKE_INSTALL_PREFIX 路径上创建库文件。

使用该路径构建 PJSIP 库,如下所示,

TARGET_ABI=armeabi-v7a ./configure-android --use-ndk-cflags --with-bcg729=/home/Desktop/g729_libraries/

在构建时,如果显示为,

Using bcg729 prefix... /home/Desktop/g729_libraries/
checking bcg729 usablitiy... ok

然后您成功地将 bcg729 集成到 PJSIP 2.7

如果不是上面的结果,请在下面评论!

于 2017-10-09T12:18:22.527 回答
2

该库实际上包含Android.mk,只是有点过时,即:缺少三个(新添加的?)源文件:src/cng.c、src/dtx.c、src/vad.c。附加这些文件,它应该是可用的。

另外仅供参考,在链接(票 #2029 )中为 Android 构建 libbcg729 的步骤刚刚更新。

于 2019-08-15T10:52:35.863 回答