Ignore:
Timestamp:
Jul 31, 2006 3:19:36 PM (18 years ago)
Author:
bennylp
Message:
  • Added iLBC codec (experimental) with the following features:
    • configurable default decoder mode (20 or 30),
    • encoder mode follows the mode specified in SDP fmtp from the remote's SDP,
    • silence detector uses pjmedia's,
    • PLC uses iLBC's PLC,
    • perceptual enhancement (penh) is configurable via codec param, as usual.
  • iLBC mode is configurable in pjsua with --ilbc-mode option.
  • Added packet lost simulation in pjmedia's UDP transport and in pjsua (with --rx-drop-pct and --tx-drop-pct options).
  • Increase default buffer count in DirectSound? to 32 frames to make it more resilient to CPU disruption.
  • Specify and parse fmtp mode in SDP for codecs that need it.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_media.c

    r632 r637  
    8686#endif /* PJMEDIA_HAS_SPEEX_CODEC */ 
    8787 
     88#if PJMEDIA_HAS_ILBC_CODEC 
     89    /* Register iLBC. */ 
     90    status = pjmedia_codec_ilbc_init( pjsua_var.med_endpt,  
     91                                      pjsua_var.media_cfg.ilbc_mode); 
     92    if (status != PJ_SUCCESS) { 
     93        pjsua_perror(THIS_FILE, "Error initializing iLBC codec", 
     94                     status); 
     95        return status; 
     96    } 
     97#endif /* PJMEDIA_HAS_ILBC_CODEC */ 
     98 
    8899#if PJMEDIA_HAS_GSM_CODEC 
    89100    /* Register GSM */ 
     
    485496            goto on_error; 
    486497        } 
     498 
     499        pjmedia_transport_udp_simulate_lost(pjsua_var.calls[i].med_tp, 
     500                                            PJMEDIA_DIR_ENCODING, 
     501                                            pjsua_var.media_cfg.tx_drop_pct); 
     502 
     503        pjmedia_transport_udp_simulate_lost(pjsua_var.calls[i].med_tp, 
     504                                            PJMEDIA_DIR_DECODING, 
     505                                            pjsua_var.media_cfg.rx_drop_pct); 
     506 
    487507    } 
    488508 
     
    661681                                            pjsua_var.mconf_cfg.samples_per_frame * 
    662682                                              1000 / pjsua_var.media_cfg.clock_rate,  
    663                                             0, 0, &port); 
     683                                            options, 0, &port); 
    664684    if (status != PJ_SUCCESS) { 
    665685        PJSUA_UNLOCK(); 
     
    759779    pj_status_t status; 
    760780 
     781    /* Don't support max_size at present */ 
     782    PJ_ASSERT_RETURN(max_size == 0, PJ_EINVAL); 
     783 
     784    /* Don't support file format at present */ 
     785    PJ_ASSERT_RETURN(file_format == 0, PJ_EINVAL); 
     786 
     787    /* Don't support encoding at present */ 
     788    PJ_ASSERT_RETURN(encoding == NULL, PJ_EINVAL); 
     789 
    761790    if (pjsua_var.rec_cnt >= PJ_ARRAY_SIZE(pjsua_var.recorder)) 
    762791        return PJ_ETOOMANY; 
     
    783812                                            pjsua_var.mconf_cfg.samples_per_frame, 
    784813                                            pjsua_var.mconf_cfg.bits_per_sample,  
    785                                             0, 0, &port); 
     814                                            options, 0, &port); 
    786815    if (status != PJ_SUCCESS) { 
    787816        PJSUA_UNLOCK(); 
     
    10931122                                           const pjmedia_codec_param *param) 
    10941123{ 
     1124    PJ_UNUSED_ARG(id); 
     1125    PJ_UNUSED_ARG(param); 
    10951126    PJ_TODO(set_codec_param); 
    10961127    return PJ_SUCCESS; 
    10971128} 
    1098  
    1099  
Note: See TracChangeset for help on using the changeset viewer.