| 1 | {{{ |
| 2 | #!html |
| 3 | <!-- MAIN TABLE START --> |
| 4 | <table border=0 width="90%" align="center"><tr><td> |
| 5 | }}} |
| 6 | |
| 7 | = Using OpenCORE AMR NB and WB Codec = |
| 8 | |
| 9 | '''Table of Contents''' |
| 10 | [[PageOutline(2-3,,inline)]] |
| 11 | |
| 12 | This page describes how to add OpenCORE AMR-NB and AMR-WB support into PJSIP. |
| 13 | |
| 14 | [[BR]] |
| 15 | |
| 16 | == Building and Installing OpenCORE AMR Library == |
| 17 | |
| 18 | This instruction applies for '''all platforms''' that OpenCORE supports, '''including Windows'''. For Windows, you need to use MinGW to build the OpenCORE library. |
| 19 | |
| 20 | We tested building the OpenCORE libraries for Linux, MacOS X, Windows (MinGW), and !BlackBerry 10 (BB10). |
| 21 | |
| 22 | === Building and installing OpenCORE AMR library === |
| 23 | 1. Download the latest [http://sourceforge.net/projects/opencore-amr/files/opencore-amr/ opencore-amr] tarball. We tested with version 0.1.3. |
| 24 | 1. Unpack the tarballs to a directory: |
| 25 | {{{ |
| 26 | $ cd my_build_directory |
| 27 | $ tar xzf opencore-amr-0.1.3.tar.gz |
| 28 | $ |
| 29 | }}} |
| 30 | 1. Run configure. Add {{{--prefix}}} to install the library to an alternate directory (such as your home folder) instead of to the system wide {{{/usr}}} directory: |
| 31 | {{{ |
| 32 | $ ./configure --prefix=/home/foo |
| 33 | }}} |
| 34 | 1. Build and install: |
| 35 | {{{ |
| 36 | $ make && make install |
| 37 | }}} |
| 38 | |
| 39 | === Adding AMR-WB Support === |
| 40 | The OpenCORE AMR tarball contains AMR-NB encoder and decoder, but only AMR-WB decoder. We have to install AMR-WB encoder separately: |
| 41 | 1. Download the latest [http://sourceforge.net/projects/opencore-amr/files/vo-amrwbenc/ vo-amrwbenc] tarball. We tested with version 0.1.3 |
| 42 | 1. Unpack the tarballs to a directory: |
| 43 | {{{ |
| 44 | $ cd my_build_directory |
| 45 | $ tar xzf vo-amrwbenc-0.1.3.tar.gz |
| 46 | $ |
| 47 | }}} |
| 48 | 1. Run configure. If you use {{{--prefix}}}, make sure it has the same prefix as the one you used when configuring opencore-amr library: |
| 49 | {{{ |
| 50 | $ ./configure --prefix=/home/foo |
| 51 | }}} |
| 52 | 1. Build and install: |
| 53 | {{{ |
| 54 | $ make && make install |
| 55 | }}} |
| 56 | |
| 57 | === Testing The Installation === |
| 58 | To verify, make sure '''include''' directory in the installation directory contains these files. Suppose you use {{{--prefix=/home/foo}}}, then: |
| 59 | |
| 60 | {{{ |
| 61 | $ ls /home/foo/include |
| 62 | opencore-amrnb opencore-amrwb vo-amrwbenc |
| 63 | }}} |
| 64 | |
| 65 | [[BR]] |
| 66 | == Adding AMR Support in PJSIP == |
| 67 | |
| 68 | === Make Build System (MacOS X, Linux, BB10, etc.) === |
| 69 | 1. In the pjproject directory, run {{{configure}}} script, specifying the installation directory of OpenCORE codec to the {{{--with-opencore-amr}}} option: |
| 70 | {{{ |
| 71 | $ ./configure --with-opencore-amr=/home/foo |
| 72 | }}} |
| 73 | 1. Check the output of {{{configure}}} command, make sure that the codecs are detected: |
| 74 | {{{ |
| 75 | checking for OpenCORE AMR installations.. |
| 76 | Using OpenCORE AMR prefix... /home/foo |
| 77 | ... |
| 78 | ... |
| 79 | OpenCORE AMR-NB library found, AMR-NB support enabled |
| 80 | ... |
| 81 | ... |
| 82 | OpenCORE AMR-WB library found, AMR-WB support enabled |
| 83 | }}} |
| 84 | 1. If the codecs are not enabled, that means the {{{configure}}} script were unable to find some files in the specified directory. Check the screen output again to see what were missing, and rebuild or reinstall the OpenCORE libraries if necessary. |
| 85 | 1. Build PJSIP: |
| 86 | {{{ |
| 87 | $ make dep && make clean && make |
| 88 | }}} |
| 89 | 1. PJSIP is now built with OpenCORE AMR support |
| 90 | |
| 91 | === Windows === |
| 92 | |
| 93 | 1. Add your installed OpenCORE directories to Visual Studio include and lib paths. You should know how to do this. |
| 94 | 1. Configure and build pjsip with Visual Studio: |
| 95 | 1. Download the latest pjproject |
| 96 | 1. Add this to your {{{config_site.h}}}: |
| 97 | {{{ |
| 98 | #define PJMEDIA_HAS_OPENCORE_AMRNB_CODEC 1 |
| 99 | /* And if you want to have AMR-WB support: */ |
| 100 | #define PJMEDIA_HAS_OPENCORE_AMRWB_CODEC 1 |
| 101 | }}} |
| 102 | 1. Build the pjproject solution. |
| 103 | 1. The AMR-NB (and AMR-WB) codecs are now available ready to be used. |
| 104 | |
| 105 | [[BR]] |
| 106 | == Testing PJSIP For OpenCORE AMR Support == |
| 107 | |
| 108 | 1. Run {{{pjsua}}} |
| 109 | 1. List the codecs with {{{Cp}}} command from pjsua console: |
| 110 | {{{ |
| 111 | >>> Cp |
| 112 | List of audio codecs: |
| 113 | ... |
| 114 | 128 AMR/8000/1 |
| 115 | 128 AMR-WB/8000/1 |
| 116 | ... |
| 117 | |
| 118 | List of video codecs: |
| 119 | ... |
| 120 | |
| 121 | Enter codec id and its new priority (e.g. "speex/16000 200", "H263 200"), |
| 122 | or empty to cancel. |
| 123 | Codec name ("*" for all) and priority: |
| 124 | Done |
| 125 | >>> |
| 126 | }}} |
| 127 | |
| 128 | |
| 129 | |
| 130 | {{{ |
| 131 | #!html |
| 132 | <!-- MAIN TABLE END --> |
| 133 | </td></tr></table> |
| 134 | }}} |
| 135 | |