Re: opencore-amr codecs on Android

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



hi all,
here write how I build pjsip with AMR for android devices.
1. download and unpack opencore-amr and ​vo-amrwbenc (I'm trying on 0.1.3)

2. for android you have to create non-versioned shared libraries: here is instruction how to do that -> http://www.opengis.ch/2011/11/23/creating-non-versioned-shared-libraries-for-android/ -thanks that, I created new configure file for opencore-amr and vo-amrwbenc I add it in attachment.

3. from pjsip sources I copy into main opencore-amr and vo-amrwbenc directory configure-android and change it, I also attached it.
WARNING: you have to change directory of ndk directory
 - in line 6 -> export ANDROID_NDK_ROOT=../android-sdk-linux/ndk-bundle
- in line 73 (sample) -> NDK_OUT=`${NDK_BUILD} -n -C ../../pjsip/trunk/pjsip-apps/src/samples/android_sample APP_PLATFORM=${APP_PLATFORM} APP_ABI=${TARGET_ABI}`

4. from https://github.com/VoiSmart/pjsip-android-builder/blob/master/build I download build script and change it. In attachment here is my result.
WARNING: you have to change directory of ndk directory
 - in line from 10 to 33 -> please check all directories,
especially:
 line 10 -> PJSIP_DIR_NAME="trunk"
 line 24 -> OPENCORE_PATH="${BASE_FOLDER}/opencore-amr-0.1.3"
 line 25 -> VOAMRWB_PATH="${BASE_FOLDER}/vo-amrwbenc-0.1.3"
 line 33 -> export ANDROID_NDK_ROOT=../../android-sdk-linux/ndk-bundle

5. run ./build_pjsip
6. enjoy

You will received some warnings, but codecs will by working. If you need some help or something is not clear fell free to ask.

7. you have to also add to android sample app:
   System.loadLibrary("opencore-amrnb");
   System.loadLibrary("opencore-amrwb");
   System.loadLibrary("vo-amrwbenc");

Andrzej


W dniu 2016-11-08 o 10:03, JOHAN LANTZ pisze:
As far as I recall there are two settings exposed by pjsip. Octet-aligned and bitrate. If you set octet-aligned to 1 you should see it in the sdp by default. Might be the same with mode-set and bitrate.

The remote decoder is probably capable of decoding any bitrate you send but if you want to signal for instance support only for specific modes or other capabilities you can probably use on_call_sdp_created to manipulate the default sdp, adding fmtp parameters etc.

If you have a script or instructions for building open-core amr for Android feel free to share it with the community so others can save some time if they want to do the same.

/Johan


On 08/11/2016, 08:53, "pjsip on behalf of Andrzej Grajnert" <pjsip-bounces@xxxxxxxxxxxxxxx on behalf of frogersik@xxxxxxxxx> wrote:

Hi, I finally build AMR codec for Android and it's works fine. What kind
of settings are supported by this codecs? Can I set 'max-red' or
'mode-change-capability'? I found only octet-algin. How I can put this
settings to SDP message as fmtp?

BR,
Andrzej Grajnert

W dniu 2016-10-31 o 15:09, Andrzej Grajnert pisze:
And what about
https://trac.pjsip.org/repos/wiki/Using-OpenCORE-AMR-NB-WB-Codec? It is
possbile to build it on Android? I try something but I get some errors,
here is my log

checking for OpenCORE AMR installations..
Using OpenCORE AMR prefix... /media/cookie/sip/pjsip/foo
checking opencore-amrnb/interf_enc.h usability... yes
checking opencore-amrnb/interf_enc.h presence... no
aconfigure: WARNING: opencore-amrnb/interf_enc.h: accepted by the
compiler, rejected by the preprocessor!
aconfigure: WARNING: opencore-amrnb/interf_enc.h: proceeding with the
compiler's result
checking for opencore-amrnb/interf_enc.h... yes
checking for Encoder_Interface_init in -lopencore-amrnb... yes
OpenCORE AMR-NB library found, AMR-NB support enabled
checking vo-amrwbenc/enc_if.h usability... yes
checking vo-amrwbenc/enc_if.h presence... no
aconfigure: WARNING: vo-amrwbenc/enc_if.h: accepted by the compiler,
rejected by the preprocessor!
aconfigure: WARNING: vo-amrwbenc/enc_if.h: proceeding with the
compiler's result
checking for vo-amrwbenc/enc_if.h... yes
checking opencore-amrwb/dec_if.h usability... yes
checking opencore-amrwb/dec_if.h presence... no
aconfigure: WARNING: opencore-amrwb/dec_if.h: accepted by the compiler,
rejected by the preprocessor!
aconfigure: WARNING: opencore-amrwb/dec_if.h: proceeding with the
compiler's result
checking for opencore-amrwb/dec_if.h... yes
checking for D_IF_init in -lopencore-amrwb... yes
checking for E_IF_init in -lvo-amrwbenc... no
Checking if SILK support is disabled... yes
checking for OPUS installations..

I don't understand why presence result is always no...
To build opencore by ndk I copy config-android from pjsip and make some
changes
BR,
Andrzej

W dniu 2016-10-31 o 13:44, JOHAN LANTZ pisze:
If you are ok with only targeting devices <= Android 6.0 you can have
a look at how CSipSimple supports amr for pjsip. The advantage with
that approach is that theoretically, you do not have to worry about
amr licensing.

The downside is that starting in Android 7.0, this approach is blocked
by Google so for +7.0 versions, you would have to compile opencore for
Android yourself (and take care of the amr licensing issues).

/Johan




On 31/10/2016, 13:36, "pjsip on behalf of frogersik"
<pjsip-bounces@xxxxxxxxxxxxxxx on behalf of frogersik@xxxxxxxxx> wrote:

Hi all!
It is possible to have OpenCORE AMR NB and WB Codecs on Android?

br,
Andrzej Grajnert

_______________________________________________
Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@xxxxxxxxxxxxxxx
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org




_______________________________________________
Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@xxxxxxxxxxxxxxx
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

<<attachment: config.zip>>

_______________________________________________
Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@xxxxxxxxxxxxxxx
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux