Changeset 4243


Ignore:
Timestamp:
Aug 31, 2012 11:42:17 AM (12 years ago)
Author:
nanang
Message:

Fix #1579: Update Symbian APS/VAS to use new pjmedia_format.

Location:
pjproject/trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/include/pjmedia-audiodev/audiodev.h

    r3664 r4243  
    424424     */ 
    425425    pj_bool_t cng_enabled; 
     426 
     427    /**  
     428     * Enable/disable VAD. This setting is optional, and will only be used 
     429     * if PJMEDIA_AUD_DEV_CAP_VAD is set in the flags. 
     430     */ 
     431    pj_bool_t vad_enabled; 
    426432 
    427433} pjmedia_aud_param; 
  • pjproject/trunk/pjmedia/src/pjmedia-audiodev/symb_aps_dev.cpp

    r3841 r4243  
    974974            unsigned samples_got; 
    975975             
    976             samples_got = strm->param.ext_fmt.bitrate == 15200? 160 : 240; 
     976            samples_got = 
     977                strm->param.ext_fmt.det.aud.avg_bps == 15200? 160 : 240; 
    977978             
    978979            /* Check if we got a normal frame. */ 
     
    11721173                samples_cnt = frame->samples_cnt / frame->subframe_cnt; 
    11731174                 
    1174                 pj_assert((strm->param.ext_fmt.bitrate == 15200 &&  
     1175                pj_assert((strm->param.ext_fmt.det.aud.avg_bps == 15200 &&  
    11751176                           samples_cnt == 160) || 
    1176                           (strm->param.ext_fmt.bitrate != 15200 && 
     1177                          (strm->param.ext_fmt.det.aud.avg_bps != 15200 && 
    11771178                           samples_cnt == 240)); 
    11781179                 
     
    13921393 
    13931394        if (supported) { 
     1395            pjmedia_format ext_fmt; 
     1396             
    13941397            switch(i) { 
    13951398            case 0: /* AMRNB */ 
    1396                 af->dev_info.ext_fmt[fmt_cnt].id = PJMEDIA_FORMAT_AMR; 
    1397                 af->dev_info.ext_fmt[fmt_cnt].bitrate = 7400; 
    1398                 af->dev_info.ext_fmt[fmt_cnt].vad = PJ_TRUE; 
     1399                pjmedia_format_init_audio(&ext_fmt, PJMEDIA_FORMAT_AMR, 
     1400                                          8000, 1, 16, 20, 7400, 12200); 
     1401                af->dev_info.ext_fmt[fmt_cnt] = ext_fmt; 
     1402                //af->dev_info.ext_fmt[fmt_cnt].vad = PJ_TRUE; 
    13991403                ++fmt_cnt; 
    14001404                break; 
    14011405            case 1: /* G.711 */ 
    1402                 af->dev_info.ext_fmt[fmt_cnt].id = PJMEDIA_FORMAT_PCMU; 
    1403                 af->dev_info.ext_fmt[fmt_cnt].bitrate = 64000; 
    1404                 af->dev_info.ext_fmt[fmt_cnt].vad = PJ_FALSE; 
     1406                pjmedia_format_init_audio(&ext_fmt, PJMEDIA_FORMAT_PCMU, 
     1407                                          8000, 1, 16, 20, 64000, 64000); 
     1408                af->dev_info.ext_fmt[fmt_cnt] = ext_fmt; 
     1409                //af->dev_info.ext_fmt[fmt_cnt].vad = PJ_FALSE; 
    14051410                ++fmt_cnt; 
    1406                 af->dev_info.ext_fmt[fmt_cnt].id = PJMEDIA_FORMAT_PCMA; 
    1407                 af->dev_info.ext_fmt[fmt_cnt].bitrate = 64000; 
    1408                 af->dev_info.ext_fmt[fmt_cnt].vad = PJ_FALSE; 
     1411                pjmedia_format_init_audio(&ext_fmt, PJMEDIA_FORMAT_PCMA, 
     1412                                          8000, 1, 16, 20, 64000, 64000); 
     1413                af->dev_info.ext_fmt[fmt_cnt] = ext_fmt; 
     1414                //af->dev_info.ext_fmt[fmt_cnt].vad = PJ_FALSE; 
    14091415                ++fmt_cnt; 
    14101416                g711_supported = PJ_TRUE; 
    14111417                break; 
    14121418            case 2: /* G.729 */ 
    1413                 af->dev_info.ext_fmt[fmt_cnt].id = PJMEDIA_FORMAT_G729; 
    1414                 af->dev_info.ext_fmt[fmt_cnt].bitrate = 8000; 
    1415                 af->dev_info.ext_fmt[fmt_cnt].vad = PJ_FALSE; 
     1419                pjmedia_format_init_audio(&ext_fmt, PJMEDIA_FORMAT_G729, 
     1420                                          8000, 1, 16, 20, 8000, 8000); 
     1421                af->dev_info.ext_fmt[fmt_cnt] = ext_fmt; 
     1422                //af->dev_info.ext_fmt[fmt_cnt].vad = PJ_FALSE; 
    14161423                ++fmt_cnt; 
    14171424                break; 
    14181425            case 3: /* iLBC */ 
    1419                 af->dev_info.ext_fmt[fmt_cnt].id = PJMEDIA_FORMAT_ILBC; 
    1420                 af->dev_info.ext_fmt[fmt_cnt].bitrate = 13333; 
    1421                 af->dev_info.ext_fmt[fmt_cnt].vad = PJ_TRUE; 
     1426                pjmedia_format_init_audio(&ext_fmt, PJMEDIA_FORMAT_ILBC, 
     1427                                          8000, 1, 16, 30, 13333, 15200); 
     1428                af->dev_info.ext_fmt[fmt_cnt] = ext_fmt; 
     1429                //af->dev_info.ext_fmt[fmt_cnt].vad = PJ_TRUE; 
    14221430                ++fmt_cnt; 
    14231431                break; 
     
    15711579    if (strm->param.ext_fmt.id == PJMEDIA_FORMAT_AMR) 
    15721580    { 
    1573         aps_setting.mode = (TAPSCodecMode)strm->param.ext_fmt.bitrate; 
     1581        aps_setting.mode = (TAPSCodecMode)strm->param.ext_fmt.det.aud.avg_bps; 
    15741582    }  
    15751583    else if (strm->param.ext_fmt.id == PJMEDIA_FORMAT_PCMU || 
    15761584             strm->param.ext_fmt.id == PJMEDIA_FORMAT_L16 || 
    15771585            (strm->param.ext_fmt.id == PJMEDIA_FORMAT_ILBC  && 
    1578              strm->param.ext_fmt.bitrate != 15200)) 
     1586             strm->param.ext_fmt.det.aud.avg_bps != 15200)) 
    15791587    { 
    15801588        aps_setting.mode = EULawOr30ms; 
     
    15821590    else if (strm->param.ext_fmt.id == PJMEDIA_FORMAT_PCMA || 
    15831591            (strm->param.ext_fmt.id == PJMEDIA_FORMAT_ILBC && 
    1584              strm->param.ext_fmt.bitrate == 15200)) 
     1592             strm->param.ext_fmt.det.aud.avg_bps == 15200)) 
    15851593    { 
    15861594        aps_setting.mode = EALawOr20ms; 
     
    15971605        aps_setting.vad = EFalse; 
    15981606    } else { 
    1599         aps_setting.vad = strm->param.ext_fmt.vad; 
     1607        aps_setting.vad = (strm->param.flags & PJMEDIA_AUD_DEV_CAP_VAD) && 
     1608                          strm->param.vad_enabled; 
    16001609    } 
    16011610     
    16021611    /* Set other audio engine attributes. */ 
    1603     aps_setting.plc = strm->param.plc_enabled; 
     1612    aps_setting.plc = (strm->param.flags & PJMEDIA_AUD_DEV_CAP_PLC) && 
     1613                      strm->param.plc_enabled; 
    16041614    aps_setting.cng = aps_setting.vad; 
    16051615    aps_setting.loudspk =  
  • pjproject/trunk/pjmedia/src/pjmedia-audiodev/symb_vas_dev.cpp

    r3841 r4243  
    10161016            unsigned samples_got; 
    10171017             
    1018             samples_got = strm->param.ext_fmt.bitrate == 15200? 160 : 240; 
     1018            samples_got = 
     1019                strm->param.ext_fmt.det.aud.avg_bps == 15200? 160 : 240; 
    10191020             
    10201021            /* Check if we got a normal or SID frame. */ 
     
    12151216                samples_cnt = frame->samples_cnt / frame->subframe_cnt; 
    12161217                 
    1217                 pj_assert((strm->param.ext_fmt.bitrate == 15200 &&  
     1218                pj_assert((strm->param.ext_fmt.det.aud.avg_bps == 15200 &&  
    12181219                           samples_cnt == 160) || 
    1219                           (strm->param.ext_fmt.bitrate != 15200 && 
     1220                          (strm->param.ext_fmt.det.aud.avg_bps != 15200 && 
    12201221                           samples_cnt == 240)); 
    12211222                 
     
    12311232                     
    12321233                    /* VAS iLBC frame is 20ms or 30ms */ 
    1233                     frame_len = strm->param.ext_fmt.bitrate == 15200? 38 : 50; 
     1234                    frame_len = 
     1235                        strm->param.ext_fmt.det.aud.avg_bps == 15200? 38 : 50; 
    12341236                    buffer.AppendFill(0, frame_len); 
    12351237                } 
     
    12451247                 
    12461248                /* VAS iLBC frame is 20ms or 30ms */ 
    1247                 frame_len = strm->param.ext_fmt.bitrate == 15200? 38 : 50; 
     1249                frame_len = 
     1250                    strm->param.ext_fmt.det.aud.avg_bps == 15200? 38 : 50; 
    12481251                buffer.AppendFill(0, frame_len); 
    12491252 
     
    14091412     
    14101413    for (TInt i = 0; i < dnlink_formats.Count(); i++) { 
     1414        pjmedia_format ext_fmt; 
     1415         
    14111416        /* Format must be supported by both downlink & uplink. */ 
    14121417        if (uplink_formats.Find(dnlink_formats[i]) == KErrNotFound) 
     
    14151420        switch (dnlink_formats[i]) { 
    14161421        case EAMR_NB: 
    1417             af->dev_info.ext_fmt[ext_fmt_cnt].id = PJMEDIA_FORMAT_AMR; 
    1418             af->dev_info.ext_fmt[ext_fmt_cnt].bitrate = 7400; 
    1419             af->dev_info.ext_fmt[ext_fmt_cnt].vad = PJ_TRUE; 
     1422            pjmedia_format_init_audio(&ext_fmt, PJMEDIA_FORMAT_AMR, 
     1423                                      8000, 1, 16, 20, 7400, 12200); 
     1424            af->dev_info.ext_fmt[ext_fmt_cnt] = ext_fmt; 
     1425            //af->dev_info.ext_fmt[ext_fmt_cnt].vad = PJ_TRUE; 
    14201426            break; 
    14211427 
    14221428        case EG729: 
    1423             af->dev_info.ext_fmt[ext_fmt_cnt].id = PJMEDIA_FORMAT_G729; 
    1424             af->dev_info.ext_fmt[ext_fmt_cnt].bitrate = 8000; 
    1425             af->dev_info.ext_fmt[ext_fmt_cnt].vad = PJ_FALSE; 
     1429            pjmedia_format_init_audio(&ext_fmt, PJMEDIA_FORMAT_G729, 
     1430                                      8000, 1, 16, 20, 8000, 8000); 
     1431            af->dev_info.ext_fmt[ext_fmt_cnt] = ext_fmt; 
     1432            //af->dev_info.ext_fmt[ext_fmt_cnt].vad = PJ_FALSE; 
    14261433            break; 
    14271434 
    14281435        case EILBC: 
    1429             af->dev_info.ext_fmt[ext_fmt_cnt].id = PJMEDIA_FORMAT_ILBC; 
    1430             af->dev_info.ext_fmt[ext_fmt_cnt].bitrate = 13333; 
    1431             af->dev_info.ext_fmt[ext_fmt_cnt].vad = PJ_TRUE; 
     1436            pjmedia_format_init_audio(&ext_fmt, PJMEDIA_FORMAT_ILBC, 
     1437                                      8000, 1, 16, 30, 13333, 15200); 
     1438            af->dev_info.ext_fmt[ext_fmt_cnt] = ext_fmt; 
     1439            //af->dev_info.ext_fmt[ext_fmt_cnt].vad = PJ_TRUE; 
    14321440            break; 
    14331441 
     
    14361444        case EG711_10MS: 
    14371445#endif 
    1438             af->dev_info.ext_fmt[ext_fmt_cnt].id = PJMEDIA_FORMAT_PCMU; 
    1439             af->dev_info.ext_fmt[ext_fmt_cnt].bitrate = 64000; 
    1440             af->dev_info.ext_fmt[ext_fmt_cnt].vad = PJ_FALSE; 
     1446            pjmedia_format_init_audio(&ext_fmt, PJMEDIA_FORMAT_PCMU, 
     1447                                      8000, 1, 16, 20, 64000, 64000); 
     1448            af->dev_info.ext_fmt[ext_fmt_cnt] = ext_fmt; 
     1449            //af->dev_info.ext_fmt[ext_fmt_cnt].vad = PJ_FALSE; 
    14411450            ++ext_fmt_cnt; 
    1442             af->dev_info.ext_fmt[ext_fmt_cnt].id = PJMEDIA_FORMAT_PCMA; 
    1443             af->dev_info.ext_fmt[ext_fmt_cnt].bitrate = 64000; 
    1444             af->dev_info.ext_fmt[ext_fmt_cnt].vad = PJ_FALSE; 
     1451            pjmedia_format_init_audio(&ext_fmt, PJMEDIA_FORMAT_PCMA, 
     1452                                      8000, 1, 16, 20, 64000, 64000); 
     1453            af->dev_info.ext_fmt[ext_fmt_cnt] = ext_fmt; 
     1454            //af->dev_info.ext_fmt[ext_fmt_cnt].vad = PJ_FALSE; 
    14451455            break; 
    14461456         
     
    16171627    else if (strm->param.ext_fmt.id == PJMEDIA_FORMAT_AMR) 
    16181628    { 
    1619         vas_setting.mode = strm->param.ext_fmt.bitrate; 
     1629        vas_setting.mode = strm->param.ext_fmt.det.aud.avg_bps; 
    16201630    }  
    16211631    else if (strm->param.ext_fmt.id == PJMEDIA_FORMAT_PCMU) 
     
    16291639    else if (strm->param.ext_fmt.id == PJMEDIA_FORMAT_ILBC) 
    16301640    { 
    1631         if (strm->param.ext_fmt.bitrate == 15200) 
     1641        if (strm->param.ext_fmt.det.aud.avg_bps == 15200) 
    16321642            vas_setting.mode = CVoIPFormatIntfc::EiLBC20mSecFrame; 
    16331643        else 
     
    16481658        vas_setting.vad = EFalse; 
    16491659    } else { 
    1650         vas_setting.vad = strm->param.ext_fmt.vad; 
     1660        vas_setting.vad = (strm->param.flags & PJMEDIA_AUD_DEV_CAP_VAD) && 
     1661                          strm->param.vad_enabled; 
    16511662    } 
    16521663     
    16531664    /* Set other audio engine attributes. */ 
    1654     vas_setting.plc = strm->param.plc_enabled; 
     1665    vas_setting.plc = (strm->param.flags & PJMEDIA_AUD_DEV_CAP_PLC) && 
     1666                      strm->param.plc_enabled; 
    16551667    vas_setting.cng = vas_setting.vad; 
    16561668    vas_setting.loudspk =  
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_aud.c

    r4234 r4243  
    15731573    } 
    15741574 
     1575    /* VAD settings */ 
     1576    if (pjsua_var.media_cfg.no_vad) { 
     1577        param->flags &= ~PJMEDIA_AUD_DEV_CAP_VAD; 
     1578    } else { 
     1579        param->flags |= PJMEDIA_AUD_DEV_CAP_VAD; 
     1580        param->vad_enabled = PJ_TRUE; 
     1581    } 
     1582 
    15751583    return PJ_SUCCESS; 
    15761584} 
Note: See TracChangeset for help on using the changeset viewer.