27 | | * Intel IPP samples |
28 | | |
29 | | We tested with Intel IPP version 5.3. You may be able to use different Intel IPP version with PJMEDIA, however we have not tested this. |
30 | | |
31 | | Note that the use of Intel IPP may require license, both from Intel and the parties who own the royalty of the codec. |
| 27 | * Intel IPP samples for your platform |
| 28 | |
| 29 | We tested with Intel IPP version 5.3. You may be able to use different Intel IPP versions with PJMEDIA, however we have not tested this. |
| 30 | |
| 31 | {{{ |
| 32 | #!html |
| 33 | <TABLE border=0 width="600" bgcolor=#E0E6FF><TR><TD> |
| 34 | }}} |
| 35 | |
| 36 | '''Note that the use of Intel IPP may require licenses, both from Intel and the parties who own the royalty of the codec.''' |
| 37 | |
| 38 | {{{ |
| 39 | #!html |
| 40 | </TD></TR></TABLE> |
| 41 | }}} |
| 42 | |
51 | | Once the build process done, you should have '''{{{usc.lib}}}''' file somewhere inside {{{speech-codecs\bin}}} directory (in my case, it's in {{{C:\ipp-samples\speech-codecs\bin\win32_cl9\lib}}} folder). |
52 | | |
53 | | If you have any problems with installing and/or building the IPP or IPP samples, please read the documentation or contact Intel for support. |
| 62 | Once the build process done, you should have '''{{{usc.lib}}}''' file somewhere in a directory inside {{{speech-codecs\bin}}} directory (in my case, it's in {{{C:\ipp-samples\speech-codecs\bin\win32_cl9\lib}}} folder). The directory name corresponds to the platform where the samples are built for. |
| 63 | |
| 64 | If you have any problems with installing and/or building the IPP or IPP samples, please read the IPP documentation or contact Intel for support. |
57 | | 1. Add Intel IPP include and library path to Visual Studio paths. For example if 32bit Intel IPP is installed in {{{C:\Program Files\Intel\IPP\5.3.3.082\ia32}}} directory: |
58 | | - add {{{C:\Program Files\Intel\IPP\5.3.3.082\ia32\include}}} to the include path |
59 | | - add {{{C:\Program Files\Intel\IPP\5.3.3.082\ia32\stublib}}} to the library path |
60 | | 1. Add Intel IPP samples include and library path to Visual Studio directory options. For example, if Intel IPP samples are in {{{C:\ipp-samples}}}: |
| 68 | 1. Add Intel IPP include and library paths to Visual Studio paths. For example if 32bit Intel IPP is installed in {{{C:\Program Files\Intel\IPP\5.3.3.082\ia32}}} directory: |
| 69 | - add {{{C:\Program Files\Intel\IPP\5.3.3.082\ia32\include}}} to the VS include path |
| 70 | - add {{{C:\Program Files\Intel\IPP\5.3.3.082\ia32\stublib}}} to the VS library path |
| 71 | 1. Add Intel IPP samples include and library path to Visual Studio paths. For example, if Intel IPP samples are located in {{{C:\ipp-samples}}}: |
79 | | Once the build process done, you should have '''{{{libusc.a}}}''' file somewhere inside {{{speech-codecs\bin}}} directory (in my case, it's in {{{~/Desktop/ipp-samples/speech-codecs/bin/linux32_gcc3/lib}}} directory). |
80 | | |
81 | | If you have any problems with installing and/or building the IPP or IPP samples, please read the documentation or contact Intel for support. |
| 92 | Once the build process done, you should have '''{{{libusc.a}}}''' file somewhere in a directory inside {{{speech-codecs\bin}}} directory (in my case, it's in {{{~/Desktop/ipp-samples/speech-codecs/bin/linux32_gcc3/lib}}} directory). The directory name corresponds to the platform where the samples are built for. |
| 93 | |
| 94 | If you have any problems with installing and/or building the IPP or IPP samples, please read the IPP documentation or contact Intel for support. |
| 141 | === Verifying Intel IPP Codecs Support === |
| 142 | |
| 143 | To verify that Intel IPP codecs supports are present, you can run [http://www.pjsip.org/pjsua.htm pjsua] and enter "Cp" (codec priority) command from the menu. It should display all IPP codecs that are enabled at compile time, e.g.: |
| 144 | |
| 145 | {{{ |
| 146 | >>> Cp |
| 147 | List of codecs: |
| 148 | 130 speex/16000/1 |
| 149 | 129 speex/8000/1 |
| 150 | 128 speex/32000/1 |
| 151 | 128 iLBC/8000/1 |
| 152 | 128 GSM/8000/1 |
| 153 | 128 PCMU/8000/1 |
| 154 | 128 PCMA/8000/1 |
| 155 | 128 G722/16000/1 |
| 156 | 128 AMR/8000/1 |
| 157 | 128 AMR-WB/16000/1 |
| 158 | 128 G729/8000/1 |
| 159 | 128 G723/8000/1 |
| 160 | 128 G726-32/8000/1 |
| 161 | 128 G728/8000/1 |
| 162 | 128 G7221/16000/1 |
| 163 | 128 G7221/16000/1 |
| 164 | 0 L16/44100/1 |
| 165 | 0 L16/44100/2 |
| 166 | 0 L16/8000/1 |
| 167 | 0 L16/8000/2 |
| 168 | 0 L16/11025/1 |
| 169 | 0 L16/11025/2 |
| 170 | 0 L16/16000/1 |
| 171 | 0 L16/16000/2 |
| 172 | 0 L16/22050/1 |
| 173 | 0 L16/22050/2 |
| 174 | 0 L16/32000/1 |
| 175 | 0 L16/32000/2 |
| 176 | 0 L16/48000/1 |
| 177 | 0 L16/48000/2 |
| 178 | |
| 179 | Enter codec id and its new priority (e.g. "speex/16000 200"), empty to cancel: |
| 180 | Codec name ("*" for all) and priority: |
| 181 | }}} |
| 182 | |
| 183 | |
| 184 | === Manipulating IPP Codecs === |
| 185 | |
| 186 | To change the IPP codec properties at run-time (e.g. to enable/disable, change the priority, bitrate, vad/plc setting, etc.), use the usual codec manipulation API that is available from both PJSUA-LIB or PJMEDIA. |
| 187 | |
| 188 | More information is available in [wiki:#using Using in Application] section below. |
| 189 | |
210 | | For codecs that support multiple bitrates (such as G.723.1 and AMR), the encoding bitrate is currently selected by setting [http://www.pjsip.org/pjmedia/docs/html/structpjmedia__codec__param.htm pjmedia_codec_param.info.avg_bps] field. This mechanism currently contradicts the normal convention of not modifying {{{pjmedia_codec_param.info}}} part. |
211 | | |
212 | | === Bitrate negotiation for G.722.1 and G.726 === |
213 | | |
214 | | SDP negotiation for selecting the appropriate bitrate for these codecs is currently not supported. |
215 | | |
216 | | === G.729 Annex B === |
217 | | |
218 | | This currently is not supported, and instead the usual PJMEDIA VAD/DTX is used. This should be compatible with G.729 though. |
| 272 | For codecs that support multiple bitrates (such as G.723.1 and AMR), the encoding bitrate is currently selected by setting [http://www.pjsip.org/pjmedia/docs/html/structpjmedia__codec__param.htm pjmedia_codec_param.info.avg_bps] field. This mechanism currently contradicts the normal convention of not modifying {{{pjmedia_codec_param.info}}} part of {{{pjmedia_codec_param}}}. |