Changeset 1965 for pjproject/trunk


Ignore:
Timestamp:
May 27, 2008 12:24:26 AM (17 years ago)
Author:
nanang
Message:

Changed build optimizations settings for Speex, pjmedia, and symbian_sound for Symbian. Speex/8000 now also runs on Symbian!

Location:
pjproject/trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/build.symbian/bld.inf

    r1793 r1965  
    55 
    66prj_mmpfiles 
     7 
     8// libraries 
    79pjlib.mmp 
    810pjlib_util.mmp 
     
    1618pjsip_ua.mmp 
    1719pjsua_lib.mmp 
     20 
     21// codecs 
    1822libgsmcodec.mmp 
     23libspeexcodec.mmp 
    1924 
     25// applications 
    2026pjlib_test.mmp 
    2127symbian_ua.mmp 
  • pjproject/trunk/build.symbian/pjmedia.mmp

    r1942 r1965  
    2222 
    2323//OPTION                CW -lang c++ 
     24 
     25// 
     26// GCCE optimization setting 
     27// 
     28OPTION          GCCE -O2 -fno-unit-at-a-time 
    2429 
    2530MACRO           PJ_M_I386=1 
  • pjproject/trunk/build.symbian/symbian_audio.mmp

    r1640 r1965  
    2626OPTION          CW -lang c++ 
    2727 
     28// 
     29// GCCE optimization setting 
     30// 
     31OPTION          GCCE -O2 -fno-unit-at-a-time 
     32 
    2833MACRO           PJ_M_I386=1 
    2934MACRO           PJ_SYMBIAN=1 
  • pjproject/trunk/build.symbian/symbian_ua.mmp

    r1793 r1965  
    3939        STATICLIBRARY   pjnath.lib pjlib_util.lib pjlib.lib 
    4040        STATICLIBRARY   symbian_audio.lib 
    41         STATICLIBRARY   libgsmcodec.lib 
     41        STATICLIBRARY   libgsmcodec.lib libspeexcodec.lib 
    4242#endif 
    4343 
  • pjproject/trunk/pjlib/include/pj/config_site_sample.h

    r1941 r1965  
    5757#   define PJMEDIA_HAS_L16_CODEC        0 
    5858#   define PJMEDIA_HAS_ILBC_CODEC       0 
    59 #   define PJMEDIA_HAS_SPEEX_CODEC      0 
     59#   define PJMEDIA_HAS_SPEEX_CODEC      1 
    6060#   define PJMEDIA_HAS_G722_CODEC       0 
    6161 
  • pjproject/trunk/pjmedia/include/pjmedia-codec/config.h

    r1870 r1965  
    5252#endif 
    5353 
     54/** 
     55 * Speex codec default complexity setting. 
     56 */ 
     57#ifndef PJMEDIA_CODEC_SPEEX_DEFAULT_COMPLEXITY 
     58#   define PJMEDIA_CODEC_SPEEX_DEFAULT_COMPLEXITY   2 
     59#endif 
     60 
     61/** 
     62 * Speex codec default quality setting. 
     63 */ 
     64#ifndef PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 
     65#   define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY      5 
     66#endif 
     67 
    5468 
    5569/** 
  • pjproject/trunk/pjmedia/include/pjmedia-codec/speex.h

    r974 r1965  
    6262 * @param options       Bitmask of pjmedia_speex_options (default=0). 
    6363 * @param quality       Specify encoding quality, or use -1 for default  
    64  *                      (default=8). 
     64 *                      (@see PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY). 
    6565 * @param complexity    Specify encoding complexity , or use -1 for default  
    66  *                      (default=8). 
     66 *                      (@see PJMEDIA_CODEC_SPEEX_DEFAULT_COMPLEXITY). 
    6767 * 
    6868 * @return              PJ_SUCCESS on success. 
     
    8585 
    8686 
     87/** 
     88 * Change the settings of Speex codec. 
     89 * 
     90 * @param clock_rate    Clock rate of Speex mode to be set. 
     91 * @param quality       Specify encoding quality, or use -1 for default  
     92 *                      (@see PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY). 
     93 * @param complexity    Specify encoding complexity , or use -1 for default  
     94 *                      (@see PJMEDIA_CODEC_SPEEX_DEFAULT_COMPLEXITY). 
     95 * 
     96 * @return              PJ_SUCCESS on success. 
     97 */ 
     98PJ_DECL(pj_status_t) pjmedia_codec_speex_set_param(unsigned clock_rate, 
     99                                                   int quality, 
     100                                                   int complexity); 
     101 
    87102 
    88103/** 
  • pjproject/trunk/pjmedia/src/pjmedia-codec/speex_codec.c

    r1677 r1965  
    3737 
    3838#define THIS_FILE   "speex_codec.c" 
    39  
    40 #define DEFAULT_QUALITY     10 
    41 #define DEFAULT_COMPLEXITY  10 
    4239 
    4340/* Prototypes for Speex factory */ 
     
    212209 
    213210    /* Get defaults */ 
    214     if (quality <= 0) quality = DEFAULT_QUALITY; 
    215     if (complexity <= 0) complexity = DEFAULT_COMPLEXITY; 
     211    if (quality < 0) quality = PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY; 
     212    if (complexity < 0) complexity = PJMEDIA_CODEC_SPEEX_DEFAULT_COMPLEXITY; 
     213 
     214    /* Validate quality & complexity */ 
     215    PJ_ASSERT_RETURN(quality >= 0 && quality <= 10, PJ_EINVAL); 
     216    PJ_ASSERT_RETURN(complexity >= 1 && complexity <= 10, PJ_EINVAL); 
    216217 
    217218    /* Create Speex codec factory. */ 
     
    298299{ 
    299300    return pjmedia_codec_speex_init(endpt, 0, -1, -1); 
     301} 
     302 
     303/* 
     304 * Change the settings of Speex codec. 
     305 */ 
     306PJ_DEF(pj_status_t) pjmedia_codec_speex_set_param(unsigned clock_rate, 
     307                                                  int quality, 
     308                                                  int complexity) 
     309{ 
     310    unsigned i; 
     311 
     312    /* Get defaults */ 
     313    if (quality < 0) quality = PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY; 
     314    if (complexity < 0) complexity = PJMEDIA_CODEC_SPEEX_DEFAULT_COMPLEXITY; 
     315 
     316    /* Validate quality & complexity */ 
     317    PJ_ASSERT_RETURN(quality >= 0 && quality <= 10, PJ_EINVAL); 
     318    PJ_ASSERT_RETURN(complexity >= 1 && complexity <= 10, PJ_EINVAL); 
     319 
     320    /* Apply the settings */ 
     321    for (i=0; i<PJ_ARRAY_SIZE(spx_factory.speex_param); ++i) { 
     322        if (spx_factory.speex_param[i].clock_rate == clock_rate) { 
     323            pj_status_t status; 
     324 
     325            spx_factory.speex_param[i].quality = quality; 
     326            spx_factory.speex_param[i].complexity = complexity; 
     327 
     328            /* Somehow quality<=4 is broken in linux. */ 
     329            if (i == PARAM_UWB && quality <= 4 && quality >= 0) { 
     330                PJ_LOG(5,(THIS_FILE, "Adjusting quality to 5 for uwb")); 
     331                spx_factory.speex_param[PARAM_UWB].quality = 5; 
     332            } 
     333 
     334            status = get_speex_info(&spx_factory.speex_param[i]); 
     335 
     336            return status; 
     337        } 
     338    } 
     339 
     340    return PJ_EINVAL; 
    300341} 
    301342 
  • pjproject/trunk/pjsip-apps/src/symbian_ua/ua.cpp

    r1793 r1965  
    335335            return status; 
    336336    } 
    337  
     337     
     338    /* Adjust Speex priority and enable only the narrowband */ 
     339    { 
     340        pj_str_t codec_id = pj_str("speex/8000"); 
     341        pjmedia_codec_mgr_set_codec_priority(  
     342                pjmedia_endpt_get_codec_mgr(pjsua_var.med_endpt), 
     343                &codec_id, PJMEDIA_CODEC_PRIO_NORMAL+1); 
     344 
     345        codec_id = pj_str("speex/16000"); 
     346        pjmedia_codec_mgr_set_codec_priority(  
     347                pjmedia_endpt_get_codec_mgr(pjsua_var.med_endpt), 
     348                &codec_id, PJMEDIA_CODEC_PRIO_DISABLED); 
     349 
     350        codec_id = pj_str("speex/32000"); 
     351        pjmedia_codec_mgr_set_codec_priority(  
     352                pjmedia_endpt_get_codec_mgr(pjsua_var.med_endpt), 
     353                &codec_id, PJMEDIA_CODEC_PRIO_DISABLED); 
     354    } 
     355     
    338356    /* Add UDP transport. */ 
    339357    pjsua_transport_config tcfg; 
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_media.c

    r1928 r1965  
    8383#if PJMEDIA_HAS_SPEEX_CODEC 
    8484    /* Register speex. */ 
    85     status = pjmedia_codec_speex_init(pjsua_var.med_endpt,  
    86                                       0, 
    87                                       pjsua_var.media_cfg.quality,  
    88                                       pjsua_var.media_cfg.quality); 
     85    status = pjmedia_codec_speex_init_default(pjsua_var.med_endpt); 
    8986    if (status != PJ_SUCCESS) { 
    9087        pjsua_perror(THIS_FILE, "Error initializing Speex codec", 
Note: See TracChangeset for help on using the changeset viewer.