Ignore:
Timestamp:
Mar 5, 2009 6:02:28 PM (10 years ago)
Author:
bennylp
Message:

Ticket #736 (aps-direct branch): implemented the compatibility layer for the old sound API

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/branches/projects/aps-direct/pjlib/include/pj/config_site_sample.h

    r2381 r2489  
    1  
    2  
    3 //#define PJ_CONFIG_MINIMAL_SIZE 
    4 //#define PJ_CONFIG_MAXIMUM_SPEED 
    5  
    6  
    7 /* 
    8  * This file (config_site_sample.h) contains various configuration 
    9  * settings that I use for certain settings.  
     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. 
    1020 */ 
    1121 
     
    1525 */ 
    1626#if defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE!=0 
    17 #   define PJ_HAS_FLOATING_POINT        0 
    18  
    19 #   define PJMEDIA_HAS_G711_PLC         0 
    20 //#   define PJMEDIA_HAS_SMALL_FILTER   1 
    21 //#   define PJMEDIA_HAS_LARGE_FILTER   0 
    22 #   define PJMEDIA_HAS_L16_CODEC        0 
    23 /*#   define PJMEDIA_HAS_GSM_CODEC      0*/ 
    24 /*#   define PJMEDIA_HAS_ILBC_CODEC     0*/ 
    25 /*#   define PJMEDIA_HAS_SPEEX_CODEC    0*/ 
    26 #   define PJMEDIA_HAS_SPEEX_AEC        0 
    27 #   undef PJMEDIA_RESAMPLE_IMP 
    28 #   define PJMEDIA_RESAMPLE_IMP         PJMEDIA_RESAMPLE_LIBRESAMPLE 
    29 #   define PJMEDIA_WSOLA_IMP            PJMEDIA_WSOLA_IMP_WSOLA_LITE 
    30  
    31     /* Speex default quality settings */ 
    32 #   define PJSUA_DEFAULT_CODEC_QUALITY  5 
    33 #   define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY  5 
    34  
    35 #   define PJMEDIA_SDP_NEG_PREFER_REMOTE_CODEC_ORDER    0 
    36 #endif 
     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    /* Shouldn't use resampling for performance reason too. */ 
     53    #define PJMEDIA_RESAMPLE_IMP                PJMEDIA_RESAMPLE_NONE 
     54 
     55    /* Use the lighter WSOLA implementation */ 
     56    #define PJMEDIA_WSOLA_IMP                   PJMEDIA_WSOLA_IMP_WSOLA_LITE 
     57 
     58    /* 
     59     * PJSIP settings. 
     60     */ 
     61 
     62    /* Set maximum number of dialog/transaction/calls to minimum to reduce 
     63     * memory usage  
     64     */ 
     65    #define PJSIP_MAX_TSX_COUNT                 31 
     66    #define PJSIP_MAX_DIALOG_COUNT              31 
     67    #define PJSUA_MAX_CALLS                     4 
     68 
     69    /* 
     70     * PJSUA settings 
     71     */ 
     72 
     73    /* Default codec (Speex) quality */ 
     74    #define PJSUA_DEFAULT_CODEC_QUALITY         5 
     75 
     76    /* Set maximum number of objects to minimum to reduce memory usage */ 
     77    #define PJSUA_MAX_ACC                       4 
     78    #define PJSUA_MAX_PLAYERS                   4 
     79    #define PJSUA_MAX_RECORDERS                 4 
     80    #define PJSUA_MAX_CONF_PORTS                (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS) 
     81    #define PJSUA_MAX_BUDDIES                   32 
     82 
     83#endif  /* PJ_WIN32_WINCE */ 
    3784 
    3885 
     
    4289#if defined(PJ_SYMBIAN) && PJ_SYMBIAN!=0 
    4390 
    44     /* We don't want to use float, for now */ 
    45 #   undef PJ_HAS_FLOATING_POINT 
    46 #   define PJ_HAS_FLOATING_POINT        0 
    47  
    48 #   define PJMEDIA_SOUND_IMPLEMENTATION PJMEDIA_SOUND_NULL_SOUND 
     91    /* 
     92     * PJLIB settings. 
     93     */ 
     94 
     95    /* Disable floating point support */ 
     96    #define PJ_HAS_FLOATING_POINT               0 
    4997 
    5098    /* Misc PJLIB setting */ 
    51 #   define PJ_MAXPATH                   80 
    52  
    53         /* SRTP has not been ported to Symbian yet */ 
    54 #   define PJMEDIA_HAS_SRTP                     1 
    55  
    56     /* Disable these */ 
    57 #   define PJMEDIA_RESAMPLE_IMP         PJMEDIA_RESAMPLE_NONE 
    58 #   define PJMEDIA_HAS_SPEEX_AEC        0 
    59 #   define PJMEDIA_WSOLA_IMP            PJMEDIA_WSOLA_IMP_WSOLA_LITE 
    60  
    61     /* Disable all codecs but G.711 and GSM, for now */ 
    62 #   define PJMEDIA_HAS_GSM_CODEC        1 
    63 #   define PJMEDIA_HAS_L16_CODEC        0 
    64 #   define PJMEDIA_HAS_ILBC_CODEC       0 
    65 #   define PJMEDIA_HAS_SPEEX_CODEC      1 
    66 #   define PJMEDIA_HAS_G722_CODEC       0 
    67  
    68     /* Need larger sound buffers */ 
    69 #   define PJMEDIA_SOUND_BUFFER_COUNT   16 
    70  
    71     /* Disable safe module access */ 
    72 #   define PJSIP_SAFE_MODULE            0 
    73  
    74 #   define PJSIP_MAX_PKT_LEN            2000 
     99    #define PJ_MAXPATH                          80 
    75100 
    76101    /* This is important for Symbian. Symbian lacks vsnprintf(), so 
     
    79104     * to log the packet. 
    80105     */ 
    81 #   define PJ_LOG_MAX_SIZE              (PJSIP_MAX_PKT_LEN+500) 
    82  
    83     /* Since we don't have threads, log buffer can use static buffer */ 
    84 #   define PJ_LOG_USE_STACK_BUFFER      0 
    85  
    86         /* Disable check stack since it increases footprint */ 
    87 #   undef PJ_OS_HAS_CHECK_STACK 
    88 #   define PJ_OS_HAS_CHECK_STACK        0 
     106    #define PJ_LOG_MAX_SIZE                     (PJSIP_MAX_PKT_LEN+500) 
     107 
     108    /* Since we don't have threads, log buffer can use static buffer 
     109     * rather than stack 
     110     */ 
     111    #define PJ_LOG_USE_STACK_BUFFER             0 
     112 
     113    /* Disable check stack since it increases footprint */ 
     114    #define PJ_OS_HAS_CHECK_STACK               0 
     115 
     116 
     117    /* 
     118     * PJMEDIA settings 
     119     */ 
     120 
     121    /* Select codecs to disable */ 
     122    #define PJMEDIA_HAS_L16_CODEC               0 
     123    #define PJMEDIA_HAS_ILBC_CODEC              0 
     124 
     125    /* Fine tune Speex's default settings for best performance/quality */ 
     126    #define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5 
     127 
     128    /* For CPU reason, disable speex AEC and use the echo suppressor. */ 
     129    #define PJMEDIA_HAS_SPEEX_AEC               0 
     130 
     131    /* Shouldn't use resampling for performance reason too. */ 
     132    #define PJMEDIA_RESAMPLE_IMP                PJMEDIA_RESAMPLE_NONE 
     133 
     134    /* Use the lighter WSOLA implementation */ 
     135    #define PJMEDIA_WSOLA_IMP                   PJMEDIA_WSOLA_IMP_WSOLA_LITE 
     136 
     137    /* We probably need more buffers especially if MDA audio backend  
     138     * is used, so increase the limit  
     139     */ 
     140    #define PJMEDIA_SOUND_BUFFER_COUNT          32 
     141 
     142    /* 
     143     * PJSIP settings. 
     144     */ 
     145 
     146    /* Disable safe module access, since we don't use multithreading */ 
     147    #define PJSIP_SAFE_MODULE                   0 
     148 
     149    /* Increase allowable packet size, just in case */ 
     150    #define PJSIP_MAX_PKT_LEN                   2000 
    89151 
    90152    /* Symbian has problem with too many large blocks */ 
    91 #   define PJSIP_POOL_LEN_ENDPT         1000 
    92 #   define PJSIP_POOL_INC_ENDPT         1000 
    93 #   define PJSIP_POOL_RDATA_LEN         2000 
    94 #   define PJSIP_POOL_RDATA_INC         2000 
    95 #   define PJSIP_POOL_LEN_TDATA         2000 
    96 #   define PJSIP_POOL_INC_TDATA         512 
    97 #   define PJSIP_POOL_LEN_UA            2000 
    98 #   define PJSIP_POOL_INC_UA            1000 
    99 #   define PJSIP_POOL_TSX_LAYER_LEN     256 
    100 #   define PJSIP_POOL_TSX_LAYER_INC     256 
    101 #   define PJSIP_POOL_TSX_LEN           512 
    102 #   define PJSIP_POOL_TSX_INC           128 
     153    #define PJSIP_POOL_LEN_ENDPT                1000 
     154    #define PJSIP_POOL_INC_ENDPT                1000 
     155    #define PJSIP_POOL_RDATA_LEN                2000 
     156    #define PJSIP_POOL_RDATA_INC                2000 
     157    #define PJSIP_POOL_LEN_TDATA                2000 
     158    #define PJSIP_POOL_INC_TDATA                512 
     159    #define PJSIP_POOL_LEN_UA                   2000 
     160    #define PJSIP_POOL_INC_UA                   1000 
     161    #define PJSIP_POOL_TSX_LAYER_LEN            256 
     162    #define PJSIP_POOL_TSX_LAYER_INC            256 
     163    #define PJSIP_POOL_TSX_LEN                  512 
     164    #define PJSIP_POOL_TSX_INC                  128 
     165 
     166    /* 
     167     * PJSUA settings. 
     168     */ 
     169 
     170    /* Default codec quality */ 
     171    #define PJSUA_DEFAULT_CODEC_QUALITY         5 
    103172 
    104173    /* Set maximum number of dialog/transaction/calls to minimum */ 
    105 #   define PJSIP_MAX_TSX_COUNT          31 
    106 #   define PJSIP_MAX_DIALOG_COUNT       31 
    107 #   define PJSUA_MAX_CALLS              4 
     174    #define PJSIP_MAX_TSX_COUNT                 31 
     175    #define PJSIP_MAX_DIALOG_COUNT              31 
     176    #define PJSUA_MAX_CALLS                     4 
    108177 
    109178    /* Other pjsua settings */ 
    110 #   define PJSUA_MAX_ACC                4 
    111 #   define PJSUA_MAX_PLAYERS            4 
    112 #   define PJSUA_MAX_RECORDERS          4 
    113 #   define PJSUA_MAX_CONF_PORTS         (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS) 
    114 #   define PJSUA_MAX_BUDDIES            32 
    115  
    116     /* Speex default quality settings */ 
    117 #   define PJSUA_DEFAULT_CODEC_QUALITY  5 
    118 #   define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY  5 
     179    #define PJSUA_MAX_ACC                       4 
     180    #define PJSUA_MAX_PLAYERS                   4 
     181    #define PJSUA_MAX_RECORDERS                 4 
     182    #define PJSUA_MAX_CONF_PORTS                (PJSUA_MAX_CALLS+2*PJSUA_MAX_PLAYERS) 
     183    #define PJSUA_MAX_BUDDIES                   32 
     184#endif 
     185 
     186 
     187/* 
     188 * Additional configuration to activate APS-Direct feature for 
     189 * Nokia S60 target 
     190 * 
     191 * Please see http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct 
     192 */ 
     193#ifdef PJ_CONFIG_NOKIA_APS_DIRECT 
     194 
     195    /* MUST use switchboard rather than the conference bridge */ 
     196    #define PJMEDIA_CONF_USE_SWITCH_BOARD       1 
     197 
     198    /* Enable APS sound device backend and disable MDA */ 
     199    #define PJMEDIA_AUDIO_DEV_HAS_SYMB_MDA      0 
     200    #define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS      1 
     201 
     202    /* Enable passthrough codec framework */ 
     203    #define PJMEDIA_HAS_PASSTHROUGH_CODECS      1 
     204 
     205    /* And selectively enable which codecs are supported by the handset */ 
     206    #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU  1 
     207    #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA  1 
     208    #define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR   1 
     209    #define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729  1 
     210    #define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC  1 
     211 
     212#endif 
     213 
     214 
     215/* 
     216 * Configuration to activate "APS-Direct" media mode on Windows, 
     217 * useful for testing purposes only. 
     218 */ 
     219#ifdef PJ_CONFIG_WIN32_WMME_DIRECT 
     220 
     221    /* MUST use switchboard rather than the conference bridge */ 
     222    #define PJMEDIA_CONF_USE_SWITCH_BOARD       1 
     223 
     224    /* Only WMME supports the "direct" feature */ 
     225    #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO     0 
     226    #define PJMEDIA_AUDIO_DEV_HAS_WMME          1 
     227 
     228    /* Enable passthrough codec framework */ 
     229    #define PJMEDIA_HAS_PASSTHROUGH_CODECS      1 
     230 
     231    /* Only PCMA and PCMU are supported by WMME-direct */ 
     232    #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU  1 
     233    #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA  1 
     234    #define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR   0 
     235    #define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729  0 
     236    #define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC  0 
     237 
    119238#endif 
    120239 
Note: See TracChangeset for help on using the changeset viewer.