如何为pjsipandroid构建g729

时间:2017-10-04 13:58:03

标签: pjsip pjsua2

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

我按照链接,我可以构建g729project。 成功构建后,它会生成三个名为include,shared和lib的目录。 因此,当尝试使用g729codec构建路径构建android pjsip项目时,pjsip无法识别g729build目录。

PJSIP说跟随belladone指定的g729的android构建指令。但是我找不到任何东西。那怎么解决呢?

3 个答案:

答案 0 :(得分:3)

是的,使用该链接构建G729非常不明确。如果您想以其他方式构建G729(相同的belladone来源),您可以关注: -

1.从回购下载最新的PJSIP。

2.从https://github.com/saravnandm/pjsip2.5-g729codec

下载补丁

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

4.应用更改pjproject-2.5.diff说。

5.Now build。

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

答案 1 :(得分:2)

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

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

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

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

第2步: 下载Belldone通讯的G729 project

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

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

注意:为最新的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 / application / Desktop / 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 =开启

     

ENABLE_SHARED =开启

     

ENABLE_STATIC =开启

     

ENABLE_TESTS =开启

     

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

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

答案 2 :(得分:1)

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

仅供参考,链接(ticket #2029)中为Android构建libbcg729的步骤也已更新。