BLOG | DOCUMENTATION | TRAC

Home --> Documentations --> PJLIB Reference

config_site_sample.h
1 /*
2  * This file contains several sample settings especially for Windows
3  * Mobile and Symbian targets. You can include this file in your
4  * <pj/config_site.h> file.
5  *
6  * The Windows Mobile and Symbian settings will be activated
7  * automatically if you include this file.
8  *
9  * In addition, you may specify one of these macros (before including
10  * this file) to activate additional settings:
11  *
12  * #define PJ_CONFIG_NOKIA_APS_DIRECT
13  * Use this macro to activate the APS-Direct feature. Please see
14  * http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct for more
15  * info.
16  *
17  * #define PJ_CONFIG_WIN32_WMME_DIRECT
18  * Configuration to activate "APS-Direct" media mode on Windows or
19  * Windows Mobile, useful for testing purposes only.
20  */
21 
22 
23 /*
24  * Typical configuration for WinCE target.
25  */
26 #if defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE!=0
27 
28  /*
29  * PJLIB settings.
30  */
31 
32  /* Disable floating point support */
33  #define PJ_HAS_FLOATING_POINT 0
34 
35  /*
36  * PJMEDIA settings
37  */
38 
39  /* Select codecs to disable */
40  #define PJMEDIA_HAS_L16_CODEC 0
41  #define PJMEDIA_HAS_ILBC_CODEC 0
42 
43  /* We probably need more buffers on WM, so increase the limit */
44  #define PJMEDIA_SOUND_BUFFER_COUNT 32
45 
46  /* Fine tune Speex's default settings for best performance/quality */
47  #define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5
48 
49  /* For CPU reason, disable speex AEC and use the echo suppressor. */
50  #define PJMEDIA_HAS_SPEEX_AEC 0
51 
52  /* Previously, resampling is disabled due to performance reason and
53  * this condition prevented some 'light' wideband codecs (e.g: G722.1)
54  * to work along with narrowband codecs. Lately, some tests showed
55  * that 16kHz <-> 8kHz resampling using libresample small filter was
56  * affordable on ARM9 260 MHz, so here we decided to enable resampling.
57  * Note that it is important to make sure that libresample is created
58  * using small filter. For example PJSUA_DEFAULT_CODEC_QUALITY must
59  * be set to 3 or 4 so pjsua-lib will apply small filter resampling.
60  */
61  //#define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_NONE
62  #define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_LIBRESAMPLE
63 
64  /* Use the lighter WSOLA implementation */
65  #define PJMEDIA_WSOLA_IMP PJMEDIA_WSOLA_IMP_WSOLA_LITE
66 
67  /*
68  * PJSIP settings.
69  */
70 
71  /* Set maximum number of dialog/transaction/calls to minimum to reduce
72  * memory usage
73  */
74  #define PJSIP_MAX_TSX_COUNT 31
75  #define PJSIP_MAX_DIALOG_COUNT 31
76  #define PJSUA_MAX_CALLS 4
77 
78  /*
79  * PJSUA settings
80  */
81 
82  /* Default codec quality, previously was set to 5, however it is now
83  * set to 4 to make sure pjsua instantiates resampler with small filter.
84  */
85  #define PJSUA_DEFAULT_CODEC_QUALITY 4
86 
87  /* Set maximum number of objects to minimum to reduce memory usage */
88  #define PJSUA_MAX_ACC 4
89  #define PJSUA_MAX_PLAYERS 4
90  #define PJSUA_MAX_RECORDERS 4
91  #define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS)
92  #define PJSUA_MAX_BUDDIES 32
93 
94 #endif /* PJ_WIN32_WINCE */
95 
96 
97 /*
98  * Typical configuration for Symbian OS target
99  */
100 #if defined(PJ_SYMBIAN) && PJ_SYMBIAN!=0
101 
102  /*
103  * PJLIB settings.
104  */
105 
106  /* Disable floating point support */
107  #define PJ_HAS_FLOATING_POINT 0
108 
109  /* Misc PJLIB setting */
110  #define PJ_MAXPATH 80
111 
112  /* This is important for Symbian. Symbian lacks vsnprintf(), so
113  * if the log buffer is not long enough it's possible that
114  * large incoming packet will corrupt memory when the log tries
115  * to log the packet.
116  */
117  #define PJ_LOG_MAX_SIZE (PJSIP_MAX_PKT_LEN+500)
118 
119  /* Since we don't have threads, log buffer can use static buffer
120  * rather than stack
121  */
122  #define PJ_LOG_USE_STACK_BUFFER 0
123 
124  /* Disable check stack since it increases footprint */
125  #define PJ_OS_HAS_CHECK_STACK 0
126 
127 
128  /*
129  * PJMEDIA settings
130  */
131 
132  /* Disable non-Symbian audio devices */
133  #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0
134  #define PJMEDIA_AUDIO_DEV_HAS_WMME 0
135 
136  /* Select codecs to disable */
137  #define PJMEDIA_HAS_L16_CODEC 0
138  #define PJMEDIA_HAS_ILBC_CODEC 0
139  #define PJMEDIA_HAS_G722_CODEC 0
140 
141  /* Fine tune Speex's default settings for best performance/quality */
142  #define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5
143 
144  /* For CPU reason, disable speex AEC and use the echo suppressor. */
145  #define PJMEDIA_HAS_SPEEX_AEC 0
146 
147  /* Previously, resampling is disabled due to performance reason and
148  * this condition prevented some 'light' wideband codecs (e.g: G722.1)
149  * to work along with narrowband codecs. Lately, some tests showed
150  * that 16kHz <-> 8kHz resampling using libresample small filter was
151  * affordable on ARM9 222 MHz, so here we decided to enable resampling.
152  * Note that it is important to make sure that libresample is created
153  * using small filter. For example PJSUA_DEFAULT_CODEC_QUALITY must
154  * be set to 3 or 4 so pjsua-lib will apply small filter resampling.
155  */
156  //#define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_NONE
157  #define PJMEDIA_RESAMPLE_IMP PJMEDIA_RESAMPLE_LIBRESAMPLE
158 
159  /* Use the lighter WSOLA implementation */
160  #define PJMEDIA_WSOLA_IMP PJMEDIA_WSOLA_IMP_WSOLA_LITE
161 
162  /* We probably need more buffers especially if MDA audio backend
163  * is used, so increase the limit
164  */
165  #define PJMEDIA_SOUND_BUFFER_COUNT 32
166 
167  /*
168  * PJSIP settings.
169  */
170 
171  /* Disable safe module access, since we don't use multithreading */
172  #define PJSIP_SAFE_MODULE 0
173 
174  /* Use large enough packet size */
175  #define PJSIP_MAX_PKT_LEN 2000
176 
177  /* Symbian has problem with too many large blocks */
178  #define PJSIP_POOL_LEN_ENDPT 1000
179  #define PJSIP_POOL_INC_ENDPT 1000
180  #define PJSIP_POOL_RDATA_LEN 2000
181  #define PJSIP_POOL_RDATA_INC 2000
182  #define PJSIP_POOL_LEN_TDATA 2000
183  #define PJSIP_POOL_INC_TDATA 512
184  #define PJSIP_POOL_LEN_UA 2000
185  #define PJSIP_POOL_INC_UA 1000
186  #define PJSIP_POOL_TSX_LAYER_LEN 256
187  #define PJSIP_POOL_TSX_LAYER_INC 256
188  #define PJSIP_POOL_TSX_LEN 512
189  #define PJSIP_POOL_TSX_INC 128
190 
191  /*
192  * PJSUA settings.
193  */
194 
195  /* Default codec quality, previously was set to 5, however it is now
196  * set to 4 to make sure pjsua instantiates resampler with small filter.
197  */
198  #define PJSUA_DEFAULT_CODEC_QUALITY 4
199 
200  /* Set maximum number of dialog/transaction/calls to minimum */
201  #define PJSIP_MAX_TSX_COUNT 31
202  #define PJSIP_MAX_DIALOG_COUNT 31
203  #define PJSUA_MAX_CALLS 4
204 
205  /* Other pjsua settings */
206  #define PJSUA_MAX_ACC 4
207  #define PJSUA_MAX_PLAYERS 4
208  #define PJSUA_MAX_RECORDERS 4
209  #define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS)
210  #define PJSUA_MAX_BUDDIES 32
211 #endif
212 
213 
214 /*
215  * Additional configuration to activate APS-Direct feature for
216  * Nokia S60 target
217  *
218  * Please see http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct
219  */
220 #ifdef PJ_CONFIG_NOKIA_APS_DIRECT
221 
222  /* MUST use switchboard rather than the conference bridge */
223  #define PJMEDIA_CONF_USE_SWITCH_BOARD 1
224 
225  /* Enable APS sound device backend and disable MDA & VAS */
226  #define PJMEDIA_AUDIO_DEV_HAS_SYMB_MDA 0
227  #define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS 1
228  #define PJMEDIA_AUDIO_DEV_HAS_SYMB_VAS 0
229 
230  /* Enable passthrough codec framework */
231  #define PJMEDIA_HAS_PASSTHROUGH_CODECS 1
232 
233  /* And selectively enable which codecs are supported by the handset */
234  #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1
235  #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1
236  #define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 1
237  #define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 1
238  #define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 1
239 
240 #endif
241 
242 
243 /*
244  * Additional configuration to activate VAS-Direct feature for
245  * Nokia S60 target
246  *
247  * Please see http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct
248  */
249 #ifdef PJ_CONFIG_NOKIA_VAS_DIRECT
250 
251  /* MUST use switchboard rather than the conference bridge */
252  #define PJMEDIA_CONF_USE_SWITCH_BOARD 1
253 
254  /* Enable VAS sound device backend and disable MDA & APS */
255  #define PJMEDIA_AUDIO_DEV_HAS_SYMB_MDA 0
256  #define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS 0
257  #define PJMEDIA_AUDIO_DEV_HAS_SYMB_VAS 1
258 
259  /* Enable passthrough codec framework */
260  #define PJMEDIA_HAS_PASSTHROUGH_CODECS 1
261 
262  /* And selectively enable which codecs are supported by the handset */
263  #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1
264  #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1
265  #define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 1
266  #define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 1
267  #define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 1
268 
269 #endif
270 
271 
272 /*
273  * Configuration to activate "APS-Direct" media mode on Windows,
274  * useful for testing purposes only.
275  */
276 #ifdef PJ_CONFIG_WIN32_WMME_DIRECT
277 
278  /* MUST use switchboard rather than the conference bridge */
279  #define PJMEDIA_CONF_USE_SWITCH_BOARD 1
280 
281  /* Only WMME supports the "direct" feature */
282  #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0
283  #define PJMEDIA_AUDIO_DEV_HAS_WMME 1
284 
285  /* Enable passthrough codec framework */
286  #define PJMEDIA_HAS_PASSTHROUGH_CODECS 1
287 
288  /* Only PCMA and PCMU are supported by WMME-direct */
289  #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1
290  #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1
291  #define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 0
292  #define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 0
293  #define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 0
294 
295 #endif
296 
297 /*
298  * iPhone sample settings.
299  */
300 #if PJ_CONFIG_IPHONE
301  /*
302  * PJLIB settings.
303  */
304 
305  /* Both armv6 and armv7 has FP hardware support.
306  * See https://trac.pjsip.org/repos/ticket/1589 for more info
307  */
308  #define PJ_HAS_FLOATING_POINT 1
309 
310  /*
311  * PJMEDIA settings
312  */
313 
314  /* We have our own native CoreAudio backend */
315  #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0
316  #define PJMEDIA_AUDIO_DEV_HAS_WMME 0
317  #define PJMEDIA_AUDIO_DEV_HAS_COREAUDIO 1
318 
319  /* The CoreAudio backend has built-in echo canceller! */
320  #define PJMEDIA_HAS_SPEEX_AEC 0
321 
322  /* Disable some codecs */
323  #define PJMEDIA_HAS_L16_CODEC 0
324  #define PJMEDIA_HAS_G722_CODEC 0
325 
326  /* Use the built-in CoreAudio's iLBC codec (yay!) */
327  #define PJMEDIA_HAS_ILBC_CODEC 1
328  #define PJMEDIA_ILBC_CODEC_USE_COREAUDIO 1
329 
330  /* Fine tune Speex's default settings for best performance/quality */
331  #define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5
332 
333  /*
334  * PJSIP settings.
335  */
336 
337  /* Increase allowable packet size, just in case */
338  //#define PJSIP_MAX_PKT_LEN 2000
339 
340  /*
341  * PJSUA settings.
342  */
343 
344  /* Default codec quality, previously was set to 5, however it is now
345  * set to 4 to make sure pjsua instantiates resampler with small filter.
346  */
347  #define PJSUA_DEFAULT_CODEC_QUALITY 4
348 
349  /* Set maximum number of dialog/transaction/calls to minimum */
350  #define PJSIP_MAX_TSX_COUNT 31
351  #define PJSIP_MAX_DIALOG_COUNT 31
352  #define PJSUA_MAX_CALLS 4
353 
354  /* Other pjsua settings */
355  #define PJSUA_MAX_ACC 4
356  #define PJSUA_MAX_PLAYERS 4
357  #define PJSUA_MAX_RECORDERS 4
358  #define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS)
359  #define PJSUA_MAX_BUDDIES 32
360 
361 #endif
362 
363 /*
364  * Android sample settings.
365  */
366 #if PJ_CONFIG_ANDROID
367 
368  #define PJ_ANDROID 1
369 
370  /*
371  * PJLIB settings.
372  */
373 
374  /* Disable floating point support */
375  #undef PJ_HAS_FLOATING_POINT
376  #define PJ_HAS_FLOATING_POINT 0
377 
378  /*
379  * PJMEDIA settings
380  */
381 
382  /* We have our own OpenSL ES backend */
383  #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0
384  #define PJMEDIA_AUDIO_DEV_HAS_WMME 0
385  #define PJMEDIA_AUDIO_DEV_HAS_OPENSL 0
386  #define PJMEDIA_AUDIO_DEV_HAS_ANDROID_JNI 1
387 
388  /* Disable some codecs */
389  #define PJMEDIA_HAS_L16_CODEC 0
390  #define PJMEDIA_HAS_G722_CODEC 0
391 
392  /* Fine tune Speex's default settings for best performance/quality */
393  #define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5
394 
395  /*
396  * PJSIP settings.
397  */
398 
399  /* Increase allowable packet size, just in case */
400  //#define PJSIP_MAX_PKT_LEN 2000
401 
402  /*
403  * PJSUA settings.
404  */
405 
406  /* Default codec quality, previously was set to 5, however it is now
407  * set to 4 to make sure pjsua instantiates resampler with small filter.
408  */
409  #define PJSUA_DEFAULT_CODEC_QUALITY 4
410 
411  /* Set maximum number of dialog/transaction/calls to minimum */
412  #define PJSIP_MAX_TSX_COUNT 31
413  #define PJSIP_MAX_DIALOG_COUNT 31
414  #define PJSUA_MAX_CALLS 4
415 
416  /* Other pjsua settings */
417  #define PJSUA_MAX_ACC 4
418  #define PJSUA_MAX_PLAYERS 4
419  #define PJSUA_MAX_RECORDERS 4
420  #define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS)
421  #define PJSUA_MAX_BUDDIES 32
422 #endif
423 
424 
425 /*
426  * BB10
427  */
428 #if defined(PJ_CONFIG_BB10) && PJ_CONFIG_BB10
429  /* Quality 3 - 4 to use resampling small filter */
430  #define PJSUA_DEFAULT_CODEC_QUALITY 4
431  #define PJMEDIA_HAS_LEGACY_SOUND_API 0
432  #undef PJMEDIA_HAS_SPEEX_AEC
433  #define PJMEDIA_HAS_SPEEX_AEC 0
434  #undef PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO
435  #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0
436 #endif
437 
438 
439 /*
440  * Minimum size
441  */
442 #ifdef PJ_CONFIG_MINIMAL_SIZE
443 
444 # undef PJ_OS_HAS_CHECK_STACK
445 # define PJ_OS_HAS_CHECK_STACK 0
446 # define PJ_LOG_MAX_LEVEL 0
447 # define PJ_ENABLE_EXTRA_CHECK 0
448 # define PJ_HAS_ERROR_STRING 0
449 # undef PJ_IOQUEUE_MAX_HANDLES
450 /* Putting max handles to lower than 32 will make pj_fd_set_t size smaller
451  * than native fdset_t and will trigger assertion on sock_select.c.
452  */
453 # define PJ_IOQUEUE_MAX_HANDLES 32
454 # define PJ_CRC32_HAS_TABLES 0
455 # define PJSIP_MAX_TSX_COUNT 15
456 # define PJSIP_MAX_DIALOG_COUNT 15
457 # define PJSIP_UDP_SO_SNDBUF_SIZE 4000
458 # define PJSIP_UDP_SO_RCVBUF_SIZE 4000
459 # define PJMEDIA_HAS_ALAW_ULAW_TABLE 0
460 
461 #elif defined(PJ_CONFIG_MAXIMUM_SPEED)
462 # define PJ_SCANNER_USE_BITWISE 0
463 # undef PJ_OS_HAS_CHECK_STACK
464 # define PJ_OS_HAS_CHECK_STACK 0
465 # define PJ_LOG_MAX_LEVEL 3
466 # define PJ_ENABLE_EXTRA_CHECK 0
467 # define PJ_IOQUEUE_MAX_HANDLES 5000
468 # define PJSIP_MAX_TSX_COUNT ((640*1024)-1)
469 # define PJSIP_MAX_DIALOG_COUNT ((640*1024)-1)
470 # define PJSIP_UDP_SO_SNDBUF_SIZE (24*1024*1024)
471 # define PJSIP_UDP_SO_RCVBUF_SIZE (24*1024*1024)
472 # define PJ_DEBUG 0
473 # define PJSIP_SAFE_MODULE 0
474 # define PJ_HAS_STRICMP_ALNUM 0
475 # define PJ_HASH_USE_OWN_TOLOWER 1
476 # define PJSIP_UNESCAPE_IN_PLACE 1
477 
478 # if defined(PJ_WIN32) || defined(PJ_WIN64)
479 # define PJSIP_MAX_NET_EVENTS 10
480 # endif
481 
482 # define PJSUA_MAX_CALLS 512
483 
484 #endif
485 

 


PJLIB Open Source, high performance, small footprint, and very very portable framework
Copyright (C) 2006-2009 Teluu Inc.