Changeset 4065 for pjproject


Ignore:
Timestamp:
Apr 21, 2012 2:17:07 AM (13 years ago)
Author:
bennylp
Message:

Fixed #1492: The echo options field in the media config and pjsua_set_ec() argument are ignored

Location:
pjproject/branches/1.x
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • pjproject/branches/1.x/pjmedia/include/pjmedia/sound_port.h

    r3553 r4065  
    7676/** 
    7777 * This structure specifies the parameters to create the sound port. 
     78 * Use pjmedia_snd_port_param_default() to initialize this structure with 
     79 * default values (mostly zeroes) 
    7880 */ 
    7981typedef struct pjmedia_snd_port_param 
     
    8890     */ 
    8991    unsigned options; 
     92 
     93    /** 
     94     * Echo cancellation options/flags. 
     95     */ 
     96    unsigned ec_options; 
     97 
    9098} pjmedia_snd_port_param; 
     99 
     100/** 
     101 * Initialize pjmedia_snd_port_param with default values. 
     102 * 
     103 * @param prm               The parameter. 
     104 */ 
     105PJ_DECL(void) pjmedia_snd_port_param_default(pjmedia_snd_port_param *prm); 
    91106 
    92107/** 
  • pjproject/branches/1.x/pjmedia/src/pjmedia/sound_port.c

    r3963 r4065  
    5050    unsigned             bits_per_sample; 
    5151    unsigned             options; 
     52    unsigned             prm_ec_options; 
    5253 
    5354    /* software ec */ 
     
    178179 
    179180    return PJ_SUCCESS; 
     181} 
     182 
     183/* Initialize with default values (zero) */ 
     184PJ_DEF(void) pjmedia_snd_port_param_default(pjmedia_snd_port_param *prm) 
     185{ 
     186    pj_bzero(prm, sizeof(*prm)); 
    180187} 
    181188 
     
    270277             
    271278        status = pjmedia_snd_port_set_ec(snd_port, pool,  
    272                                          snd_port->aud_param.ec_tail_ms, 0); 
     279                                         snd_port->aud_param.ec_tail_ms, 
     280                                         snd_port->prm_ec_options); 
    273281        if (status != PJ_SUCCESS) { 
    274282            pjmedia_aud_stream_destroy(snd_port->aud_stream); 
     
    331339    pj_status_t status; 
    332340 
    333     PJ_UNUSED_ARG(options); 
     341    pjmedia_snd_port_param_default(&param); 
    334342 
    335343    status = pjmedia_aud_dev_default_param(rec_id, &param.base); 
     
    345353    param.base.bits_per_sample = bits_per_sample; 
    346354    param.options = options; 
     355    param.ec_options = 0; 
    347356 
    348357    return pjmedia_snd_port_create2(pool, &param, p_port); 
     
    364373    pj_status_t status; 
    365374 
    366     PJ_UNUSED_ARG(options); 
     375    pjmedia_snd_port_param_default(&param); 
    367376 
    368377    status = pjmedia_aud_dev_default_param(dev_id, &param.base); 
     
    377386    param.base.bits_per_sample = bits_per_sample; 
    378387    param.options = options; 
     388    param.ec_options = 0; 
    379389 
    380390    return pjmedia_snd_port_create2(pool, &param, p_port); 
     
    397407    pj_status_t status; 
    398408 
    399     PJ_UNUSED_ARG(options); 
     409    pjmedia_snd_port_param_default(&param); 
    400410 
    401411    status = pjmedia_aud_dev_default_param(dev_id, &param.base); 
     
    410420    param.base.bits_per_sample = bits_per_sample; 
    411421    param.options = options; 
     422    param.ec_options = 0; 
    412423 
    413424    return pjmedia_snd_port_create2(pool, &param, p_port); 
     
    437448    snd_port->samples_per_frame = prm->base.samples_per_frame; 
    438449    snd_port->bits_per_sample = prm->base.bits_per_sample; 
    439     pj_memcpy(&snd_port->aud_param, prm, sizeof(snd_port->aud_param)); 
     450    pj_memcpy(&snd_port->aud_param, &prm->base, sizeof(snd_port->aud_param)); 
    440451    snd_port->options = prm->options; 
     452    snd_port->prm_ec_options = prm->ec_options; 
    441453     
    442454    /* Start sound device immediately. 
  • pjproject/branches/1.x/pjsip/src/pjsua-lib/pjsua_media.c

    r3986 r4065  
    20292029                pjmedia_snd_port_param param; 
    20302030 
     2031                pjmedia_snd_port_param_default(&param); 
     2032                param.ec_options = pjsua_var.media_cfg.ec_options; 
     2033 
    20312034                /* Create parameter based on peer info */ 
    20322035                status = create_aud_param(&param.base, pjsua_var.cap_dev,  
     
    29532956                            pjsua_var.media_cfg.audio_frame_ptime * 
    29542957                            pjsua_var.media_cfg.channel_count / 1000; 
     2958        pjmedia_snd_port_param_default(&param); 
     2959        param.ec_options = pjsua_var.media_cfg.ec_options; 
    29552960        status = create_aud_param(&param.base, capture_dev, playback_dev,  
    29562961                                  alt_cr[i], pjsua_var.media_cfg.channel_count, 
     
    30813086 
    30823087    pjsua_var.media_cfg.ec_tail_len = tail_ms; 
     3088    pjsua_var.media_cfg.ec_options = options; 
    30833089 
    30843090    if (pjsua_var.snd_port) 
Note: See TracChangeset for help on using the changeset viewer.