如何为 pjsipandroid 构建 g729

How to build g729 for pjsipandroid

我正在尝试为 pjsip 构建 g729 编解码器 android。
PJSIP Build link for G729Android

我遵循了 link 并且能够构建 g729project。 构建成功后,生成三个目录,分别是include、shared、lib。 因此,当尝试使用 g729codec 构建路径构建 android pjsip 项目时,pjsip 无法识别 g729build 目录。

PJSIP 说按照 belladone.But 指定的 g729 的 android 构建说明,我找不到任何。那么如何解决呢??

是的,关于用 link.If 构建 G729 非常不清楚,你想用其他方式构建 G729(相同的 belladone 来源)你可以遵循:-

1.Download 来自 repo 的最新 PJSIP。

2.Download 来自 https://github.com/saravnandm/pjsip2.5-g729codec

的补丁

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

4.Apply 变化如 pjproject-2.5.diff 所说。

5.Now 构建。

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

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

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

只需下载使用上述 link 适用于您平台的 Cmake 软件(Linux/Mac/Windows OS)。

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

第 2 步: 下载 G729 project 的 Belldone 通信。

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

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

注意:为最新的 PJSIP 2.7

安装 Android-ndk-r15c

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

CMAKE_C_FLAGS is important one. Use same CFLAG what you are using for building PJSIP 2.7.

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/application/Desktop/pjsip2_7/NDK/android-ndk-r15c//sources/cxx-stl/llvm-libc++/include

NOTE: compare your --sysroot path is same as above one.

CMAKE_AR, CMAKE_LINKER, CMAKE_NM, CMAKE_OBJCOPY, CMAKE_OBJDUMP, CMAKE_RANLIB, CMAKE_STRIP which are available in following android ndk path

/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= where you want to create output library files which is later used for building pjsip. Use the same path while building PJSIP --with-bcg729 = CMAKE_INSTALL_PREFIX path.

CMAKE_SKIP_INSTALL_RPATH = ON

ENABLE_SHARED = ON

ENABLE_STATIC = ON

ENABLE_TESTS = ON

CMAKE_BUILD_TYPE = Release

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

然后使用在您的 Cmake App.Run 中指定的终端转到二进制文件路径,执行以下命令。

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

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

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

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