PJSIP 2.4.5 with G.729 (without Intel IPP) for Android

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

 



Hi everybody, 
I've managed to successfully compile PJSIP 2.4.5 with G.729 codec support for Android, without using Intel IPP codecs. 
I've used G.729 implementation from http://siphon.googlecode.com/svn/trunk/g729a and made some changes to be able to compile it with PJSIP 2.4.5, but I'm only able to do so for "armeabi-v7a" target ABI. When I try to compile PJSIP with G.729 for "armeabi" (which is arm v5), "x86" or "mips", I get the following errors (which are due to G.729 implementation): 

ARMEABI: 
In file included from ../../g729/Sources/acelp_ca.c:35:0:
../../g729/Headers/basic_op.h: In function 'sature':
../../g729/Headers/basic_op.h:400:9: warning: variable 'Overflow' set but not used [-Wunused-but-set-variable]
    Flag Overflow =0;
         ^
../../g729/Sources/acelp_ca.c: In function 'D4i40_17_fast':
../../g729/Sources/acelp_ca.c:522:10: warning: operation on 'p0' may be undefined [-Wsequence-point]
       *p0++ = mult(*p0, psign[i1]);
          ^
../../g729/Sources/acelp_ca.c:523:10: warning: operation on 'p1' may be undefined [-Wsequence-point]
       *p1++ = mult(*p1, psign[i1+1]);
          ^
../../g729/Sources/acelp_ca.c:524:10: warning: operation on 'p2' may be undefined [-Wsequence-point]
       *p2++ = mult(*p2, psign[i1+2]);
          ^
../../g729/Sources/acelp_ca.c:525:10: warning: operation on 'p3' may be undefined [-Wsequence-point]
       *p3++ = mult(*p3, psign[i1+3]);
          ^
../../g729/Sources/acelp_ca.c:540:10: warning: operation on 'p0' may be undefined [-Wsequence-point]
       *p0++ = mult(*p0, psign[i2]);
          ^
../../g729/Sources/acelp_ca.c:541:10: warning: operation on 'p1' may be undefined [-Wsequence-point]
       *p1++ = mult(*p1, psign[i2+1]);
          ^
../../g729/Sources/acelp_ca.c:542:10: warning: operation on 'p2' may be undefined [-Wsequence-point]
       *p2++ = mult(*p2, psign[i2+2]);
          ^
../../g729/Sources/acelp_ca.c:556:10: warning: operation on 'p0' may be undefined [-Wsequence-point]
       *p0++ = mult(*p0, psign[i3]);
          ^
../../g729/Sources/acelp_ca.c:557:10: warning: operation on 'p1' may be undefined [-Wsequence-point]
       *p1++ = mult(*p1, psign[i3+1]);
          ^
/tmp/ccWajDEd.s: Assembler messages:
/tmp/ccWajDEd.s:375: Error: selected processor does not support ARM mode `qadd16 r3,r4,r5'
/tmp/ccWajDEd.s:427: Error: selected processor does not support ARM mode `qsub16 r3,r4,r5'
make[3]: *** [output/libg729codec-arm-unknown-linux-androideabi/Sources/acelp_ca.o] Error 1
make[3]: Leaving directory `/tmp/pjsip/third_party/build/g729'
make[2]: *** [libg729codec-arm-unknown-linux-androideabi.a] Error 2
make[2]: Leaving directory `/tmp/pjsip/third_party/build/g729'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/tmp/pjsip/third_party/build'
make: *** [all] Error 1 
x86: 
In file included from ../../g729/Sources/acelp_ca.c:35:0:
../../g729/Headers/basic_op.h: In function 'sature':
../../g729/Headers/basic_op.h:400:9: warning: variable 'Overflow' set but not used [-Wunused-but-set-variable]
    Flag Overflow =0;
         ^
../../g729/Sources/acelp_ca.c: In function 'D4i40_17_fast':
../../g729/Sources/acelp_ca.c:522:10: warning: operation on 'p0' may be undefined [-Wsequence-point]
       *p0++ = mult(*p0, psign[i1]);
          ^
../../g729/Sources/acelp_ca.c:523:10: warning: operation on 'p1' may be undefined [-Wsequence-point]
       *p1++ = mult(*p1, psign[i1+1]);
          ^
../../g729/Sources/acelp_ca.c:524:10: warning: operation on 'p2' may be undefined [-Wsequence-point]
       *p2++ = mult(*p2, psign[i1+2]);
          ^
../../g729/Sources/acelp_ca.c:525:10: warning: operation on 'p3' may be undefined [-Wsequence-point]
       *p3++ = mult(*p3, psign[i1+3]);
          ^
../../g729/Sources/acelp_ca.c:540:10: warning: operation on 'p0' may be undefined [-Wsequence-point]
       *p0++ = mult(*p0, psign[i2]);
          ^
../../g729/Sources/acelp_ca.c:541:10: warning: operation on 'p1' may be undefined [-Wsequence-point]
       *p1++ = mult(*p1, psign[i2+1]);
          ^
../../g729/Sources/acelp_ca.c:542:10: warning: operation on 'p2' may be undefined [-Wsequence-point]
       *p2++ = mult(*p2, psign[i2+2]);
          ^
../../g729/Sources/acelp_ca.c:556:10: warning: operation on 'p0' may be undefined [-Wsequence-point]
       *p0++ = mult(*p0, psign[i3]);
          ^
../../g729/Sources/acelp_ca.c:557:10: warning: operation on 'p1' may be undefined [-Wsequence-point]
       *p1++ = mult(*p1, psign[i3+1]);
          ^
../../g729/Headers/basic_op.h: Assembler messages:
../../g729/Headers/basic_op.h:307: Error: no such instruction: `clz %eax,%eax'
../../g729/Headers/basic_op.h:514: Error: no such instruction: `smulbb %eax,%esi,%edi'
../../g729/Headers/basic_op.h:515: Error: no such instruction: `qadd %eax,%eax,%eax'
../../g729/Headers/basic_op.h:565: Error: no such instruction: `smulbb %eax,%edx,%ecx'
../../g729/Headers/basic_op.h:566: Error: no such instruction: `qdsub %edx,%esi,%eax'
../../g729/Headers/basic_op.h:616: Error: no such instruction: `smulbb %eax,%ecx,%esi'
../../g729/Headers/basic_op.h:617: Error: no such instruction: `qdadd %edx,%edx,%eax'
../../g729/Headers/basic_op.h:663: Error: no such instruction: `qadd16 %eax,%esi,%edi'
../../g729/Headers/basic_op.h:709: Error: no such instruction: `qsub16 %eax,%esi,%edi'
../../g729/Headers/basic_op.h:822: Error: no such instruction: `qadd %eax,%eax,%esi'
../../g729/Headers/basic_op.h:823: Error: number of operands mismatch for `mov'
make[3]: *** [output/libg729codec-x86-unknown-linux-android/Sources/acelp_ca.o] Error 1
make[3]: Leaving directory `/tmp/pjsip/third_party/build/g729'
make[2]: *** [libg729codec-x86-unknown-linux-android.a] Error 2
make[2]: Leaving directory `/tmp/pjsip/third_party/build/g729'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/tmp/pjsip/third_party/build'
make: *** [all] Error 1 

MIPS: 
In file included from ../../g729/Sources/acelp_ca.c:35:0:
../../g729/Headers/basic_op.h: In function 'sature':
../../g729/Headers/basic_op.h:400:9: warning: variable 'Overflow' set but not used [-Wunused-but-set-variable]
    Flag Overflow =0;
         ^
../../g729/Sources/acelp_ca.c: In function 'D4i40_17_fast':
../../g729/Sources/acelp_ca.c:522:10: warning: operation on 'p0' may be undefined [-Wsequence-point]
       *p0++ = mult(*p0, psign[i1]);
          ^
../../g729/Sources/acelp_ca.c:523:10: warning: operation on 'p1' may be undefined [-Wsequence-point]
       *p1++ = mult(*p1, psign[i1+1]);
          ^
../../g729/Sources/acelp_ca.c:524:10: warning: operation on 'p2' may be undefined [-Wsequence-point]
       *p2++ = mult(*p2, psign[i1+2]);
          ^
../../g729/Sources/acelp_ca.c:525:10: warning: operation on 'p3' may be undefined [-Wsequence-point]
       *p3++ = mult(*p3, psign[i1+3]);
          ^
../../g729/Sources/acelp_ca.c:540:10: warning: operation on 'p0' may be undefined [-Wsequence-point]
       *p0++ = mult(*p0, psign[i2]);
          ^
../../g729/Sources/acelp_ca.c:541:10: warning: operation on 'p1' may be undefined [-Wsequence-point]
       *p1++ = mult(*p1, psign[i2+1]);
          ^
../../g729/Sources/acelp_ca.c:542:10: warning: operation on 'p2' may be undefined [-Wsequence-point]
       *p2++ = mult(*p2, psign[i2+2]);
          ^
../../g729/Sources/acelp_ca.c:556:10: warning: operation on 'p0' may be undefined [-Wsequence-point]
       *p0++ = mult(*p0, psign[i3]);
          ^
../../g729/Sources/acelp_ca.c:557:10: warning: operation on 'p1' may be undefined [-Wsequence-point]
       *p1++ = mult(*p1, psign[i3+1]);
          ^
/tmp/ccN9XHZu.s: Assembler messages:
/tmp/ccN9XHZu.s:252: Error: unrecognized opcode `smulbb $2,$16,$17'
/tmp/ccN9XHZu.s:253: Error: unrecognized opcode `qadd $2,$2,$2'
/tmp/ccN9XHZu.s:303: Error: unrecognized opcode `smulbb $2,$3,$4'
/tmp/ccN9XHZu.s:304: Error: unrecognized opcode `qdsub $3,$7,$2'
/tmp/ccN9XHZu.s:351: Error: unrecognized opcode `smulbb $2,$4,$5'
/tmp/ccN9XHZu.s:352: Error: unrecognized opcode `qdadd $3,$3,$2'
/tmp/ccN9XHZu.s:405: Error: unrecognized opcode `qadd16 $2,$16,$17'
/tmp/ccN9XHZu.s:462: Error: unrecognized opcode `qsub16 $2,$16,$17'
/tmp/ccN9XHZu.s:512: Error: unrecognized opcode `qadd $2,$2,$16'
/tmp/ccN9XHZu.s:513: Error: unrecognized opcode `mov $2,$2,ASR'
make[3]: *** [output/libg729codec-mipsel-unknown-linux-android/Sources/acelp_ca.o] Error 1
make[3]: Leaving directory `/tmp/pjsip/third_party/build/g729'
make[2]: *** [libg729codec-mipsel-unknown-linux-android.a] Error 2
make[2]: Leaving directory `/tmp/pjsip/third_party/build/g729'
make[1]: *** [all] Error 1
make[1]: Leaving directory `/tmp/pjsip/third_party/build'
make: *** [all] Error 1 
Has anyone gone through this before? Could someone give me some directions to be able to compile also for those target archs? Any help is really appreciated. 

This is part of the Open Source "PJSIP Android Builder" project. You can find it here: https://github.com/alexbbb/pjsip-android-builder 
Here I've also attached full build logs: https://github.com/alexbbb/pjsip-android-builder/issues/9 

Thank you! 

Alex Gotev 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20151227/3675a3a7/attachment.html>


[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