Changeset 659


Ignore:
Timestamp:
Aug 7, 2006 12:11:40 PM (18 years ago)
Author:
bennylp
Message:

Added --auto-conf options in pjsua, also enable speex/3200, and set quality 5 to use large resampling filter

Location:
pjproject/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjlib/src/pj/config.c

    r614 r659  
    2222 
    2323static const char *id = "config.c"; 
    24 const char *PJ_VERSION = "0.5.7"; 
     24const char *PJ_VERSION = "0.5.7.1"; 
    2525 
    2626PJ_DEF(void) pj_dump_config(void) 
  • pjproject/trunk/pjsip-apps/src/pjsua/pjsua_app.c

    r657 r659  
    5353    pj_bool_t               auto_play; 
    5454    pj_bool_t               auto_loop; 
     55    pj_bool_t               auto_conf; 
    5556    unsigned                ptime; 
    5657    unsigned                auto_answer; 
     
    123124    puts  ("  --auto-play         Automatically play the file (to incoming calls only)"); 
    124125    puts  ("  --auto-loop         Automatically loop incoming RTP to outgoing RTP"); 
     126    puts  ("  --auto-conf         Automatically put calls in conference with others"); 
    125127    puts  ("  --rtp-port=N        Base port to try for RTP (default=4000)"); 
    126128    puts  ("  --quality=N         Specify media quality (0-10, default=6)"); 
     
    581583            break; 
    582584 
     585        case OPT_AUTO_CONF: 
     586            cfg->auto_conf = 1; 
     587            break; 
     588 
    583589        case OPT_PLAY_FILE: 
    584590            cfg->wav_file = pj_str(pj_optarg); 
     
    923929    if (config->auto_loop) 
    924930        pj_strcat2(&cfg, "--auto-loop\n"); 
     931    if (config->auto_conf) 
     932        pj_strcat2(&cfg, "--auto-conf\n"); 
    925933    if (config->wav_file.slen) { 
    926934        pj_ansi_sprintf(line, "--play-file %s\n", 
     
    12471255            pjsua_conf_connect(app_config.wav_port, call_info.conf_slot); 
    12481256            connect_sound = PJ_FALSE; 
     1257        } 
     1258 
     1259        /* Put call in conference with other calls, if desired */ 
     1260        if (app_config.auto_conf) { 
     1261            pjsua_call_id call_ids[PJSUA_MAX_CALLS]; 
     1262            unsigned call_cnt=0; 
     1263            unsigned i; 
     1264 
     1265            /* Get all calls, and establish media connection between 
     1266             * this call and other calls. 
     1267             */ 
     1268            pjsua_enum_calls(call_ids, &call_cnt); 
     1269            for (i=0; i<call_cnt; ++i) { 
     1270                if (call_ids[i] == call_id) 
     1271                    continue; 
     1272                 
     1273                if (!pjsua_call_has_media(call_ids[i])) 
     1274                    continue; 
     1275 
     1276                pjsua_conf_connect(call_info.conf_slot, 
     1277                                   pjsua_call_get_conf_port(call_ids[i])); 
     1278                pjsua_conf_connect(pjsua_call_get_conf_port(call_ids[i]), 
     1279                                   call_info.conf_slot); 
     1280            } 
     1281 
     1282            /* Also connect call to local sound device */ 
     1283            connect_sound = PJ_TRUE; 
    12491284        } 
    12501285 
  • pjproject/trunk/pjsip/include/pjsua-lib/pjsua.h

    r658 r659  
    20862086    /** 
    20872087     * Media quality, 0-10, according to this table: 
    2088      *   8-10: resampling use large filter, 
    2089      *   3-7:  resampling use small filter, 
     2088     *   5-10: resampling use large filter, 
     2089     *   3-4:  resampling use small filter, 
    20902090     *   1-2:  resampling use linear. 
    20912091     * The media quality also sets speex codec quality/complexity to the 
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_media.c

    r658 r659  
    7676    /* Register speex. */ 
    7777    status = pjmedia_codec_speex_init(pjsua_var.med_endpt,  
    78                                       PJMEDIA_SPEEX_NO_UWB, 
     78                                      0, 
    7979                                      pjsua_var.media_cfg.quality,  
    8080                                      pjsua_var.media_cfg.quality); 
     
    8484        return status; 
    8585    } 
     86 
     87    /* Set speex/16000 to higher priority*/ 
     88    codec_id = pj_str("speex/16000"); 
     89    pjmedia_codec_mgr_set_codec_priority(  
     90        pjmedia_endpt_get_codec_mgr(pjsua_var.med_endpt), 
     91        &codec_id, PJMEDIA_CODEC_PRIO_NORMAL+2); 
     92 
     93    /* Set speex/8000 to next higher priority*/ 
     94    codec_id = pj_str("speex/8000"); 
     95    pjmedia_codec_mgr_set_codec_priority(  
     96        pjmedia_endpt_get_codec_mgr(pjsua_var.med_endpt), 
     97        &codec_id, PJMEDIA_CODEC_PRIO_NORMAL+1); 
     98 
     99 
     100 
    86101#endif /* PJMEDIA_HAS_SPEEX_CODEC */ 
    87102 
     
    146161    opt = PJMEDIA_CONF_NO_DEVICE; 
    147162    if (pjsua_var.media_cfg.quality >= 3 && 
    148         pjsua_var.media_cfg.quality <= 7) 
     163        pjsua_var.media_cfg.quality <= 4) 
    149164    { 
    150165        opt |= PJMEDIA_CONF_SMALL_FILTER; 
Note: See TracChangeset for help on using the changeset viewer.