Build PJSIP 2.2.1 with opus

V
Vinay
Tue, Apr 1, 2014 7:42 AM

Hi,

I have been trying to upgrade our iOS project unsuccessfully to PJSIP 2.2.1 with opus 1.1 and openSSL for armv7, armv7s and arm64 for iOS. We were using PJSIP 2.0 earlier.

First I got an error saying opus.h not found in pjmedia, following which I added it manually. But after that I am not able to generate the libopuscodec-arm-apple-darwin9.a file. The build process does not show any error but I am unable to generate the required lib.

I have attached the script that I have used to build it. The procedure I followed was:
Placed opus in pjsip2.2.1->third_party.
Used the opus patch found on the forums (attached herewith)
Built openSSL.
Ran the build script  (attached herewith)

Any help will be greatly appreciated as I have been stuck on this for quite some while.

--
Vinay Nair
vinay.nair@novanet.net

Hi, I have been trying to upgrade our iOS project unsuccessfully to PJSIP 2.2.1 with opus 1.1 and openSSL for armv7, armv7s and arm64 for iOS. We were using PJSIP 2.0 earlier. First I got an error saying opus.h not found in pjmedia, following which I added it manually. But after that I am not able to generate the libopuscodec-arm-apple-darwin9.a file. The build process does not show any error but I am unable to generate the required lib. I have attached the script that I have used to build it. The procedure I followed was: Placed opus in pjsip2.2.1->third_party. Used the opus patch found on the forums (attached herewith) Built openSSL. Ran the build script (attached herewith) Any help will be greatly appreciated as I have been stuck on this for quite some while. -- Vinay Nair vinay.nair@novanet.net
RM
Régis Montoya
Tue, Apr 1, 2014 8:44 AM

Hi,

You should update your code to use latest patch available (last change was
made this weekend to fix critical compatibility issue).
The opus format has evolved (in particular RTP payload format). As
consequence the old post sent is pretty outdate.
Instead, use latest versions which is compounded of :

As the work is mainly done for android on csipsimple there is currently
nothing to build using the pjsip toolchain. However it should be very easy
to build as there is no big dependancies on these plugins (it's just pjsip

  • opus). The code above is maintained and might continue to evolve. It's
    released under apache license (as everything closely related to pjsip
    project on csipsimple), so feel free to reuse and contribute to it.

Best regards
Régis

2014-04-01 9:42 GMT+02:00 Vinay vinay.nair@novanet.net:

Hi,

I have been trying to upgrade our iOS project unsuccessfully to PJSIP
2.2.1 with opus 1.1 and openSSL for armv7, armv7s and arm64 for iOS. We
were using PJSIP 2.0 earlier.

First I got an error saying opus.h not found in pjmedia, following which I
added it manually. But after that I am not able to generate the
libopuscodec-arm-apple-darwin9.a file. The build process does not show
any error but I am unable to generate the required lib.

I have attached the script that I have used to build it. The procedure I
followed was:

- Placed opus in pjsip2.2.1->third_party.
- Used the opus patch found on the forums (attached herewith)
- Built openSSL.
- Ran the build script  (attached herewith)

Any help will be greatly appreciated as I have been stuck on this for
quite some while.

--
Vinay Nair
vinay.nair@novanet.net


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

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

Hi, You should update your code to use latest patch available (last change was made this weekend to fix critical compatibility issue). The opus format has evolved (in particular RTP payload format). As consequence the old post sent is pretty outdate. Instead, use latest versions which is compounded of : * the codec plugin, it can be compiled outside of pjsip toolchain: -> https://code.google.com/p/csipsimple/source/browse/trunk/CSipSimple#CSipSimple%2Fjni%2Fopus%2Fpj_sources * the patch to add rtp payload type : -> https://code.google.com/p/csipsimple/source/browse/trunk/CSipSimple/jni/pjsip/patches/003rtp_type_strip.diff * patch to hack timestamp in stream (due to 48kHz clock rate of opus) -> https://code.google.com/p/csipsimple/source/browse/trunk/CSipSimple/jni/pjsip/patches/014opus_ts_fix.diff * module to present opus codec as one having a different internal clock rate from announced one (opus always announce 48kHz while it can be different internally and in mobile it's very important to use lower clockrate to avoid resampling when open audio device at lower clockrate -- it also might allow to reduce bandwidth ): -> https://code.google.com/p/csipsimple/source/browse/trunk/CSipSimple/jni/csipsimple-wrapper/src/pjsip_opus_sdp_rewriter.c With this code you'll get opus compliant (RFC6716 + draft draft-spittka-payload-rtp-opus version 03). It's currently compatible with jitsi and freeswitch implementation of opus. There is however some known limitations (for example about ptime), but it's not a problem with others implementations of the codec. As the work is mainly done for android on csipsimple there is currently nothing to build using the pjsip toolchain. However it should be very easy to build as there is no big dependancies on these plugins (it's just pjsip + opus). The code above is maintained and might continue to evolve. It's released under apache license (as everything closely related to pjsip project on csipsimple), so feel free to reuse and contribute to it. Best regards Régis 2014-04-01 9:42 GMT+02:00 Vinay <vinay.nair@novanet.net>: > Hi, > > I have been trying to upgrade our iOS project unsuccessfully to PJSIP > 2.2.1 with opus 1.1 and openSSL for armv7, armv7s and arm64 for iOS. We > were using PJSIP 2.0 earlier. > > First I got an error saying opus.h not found in pjmedia, following which I > added it manually. But after that I am not able to generate the > libopuscodec-arm-apple-darwin9.a file. The build process does not show > any error but I am unable to generate the required lib. > > I have attached the script that I have used to build it. The procedure I > followed was: > > - Placed opus in pjsip2.2.1->third_party. > - Used the opus patch found on the forums (attached herewith) > - Built openSSL. > - Ran the build script (attached herewith) > > > Any help will be greatly appreciated as I have been stuck on this for > quite some while. > > > > > -- > Vinay Nair > vinay.nair@novanet.net > > > > > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip@lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > >