Changeset 1482


Ignore:
Timestamp:
Oct 6, 2007 5:31:09 PM (13 years ago)
Author:
bennylp
Message:

Ticket #393: Added configuration to set basic audio frame length to minimize audio latency in pjsua-lib

Location:
pjproject/trunk/pjsip
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/include/pjsua-lib/pjsua.h

    r1477 r1482  
    17451745 */ 
    17461746#ifndef PJSUA_SECURE_SCHEME 
    1747 #   define PJSUA_SECURE_SCHEME          "sip" 
     1747#   define PJSUA_SECURE_SCHEME          "sips" 
    17481748#endif 
    17491749 
     
    34673467 
    34683468    /** 
     3469     * Specify audio frame ptime. The value here will affect the  
     3470     * samples per frame of both the sound device and the conference 
     3471     * bridge. Specifying lower ptime will normally reduce the 
     3472     * latency. 
     3473     * 
     3474     * Default: 20 (miliseconds) 
     3475     */ 
     3476    unsigned            audio_frame_ptime; 
     3477 
     3478    /** 
    34693479     * Specify maximum number of media ports to be created in the 
    34703480     * conference bridge. Since all media terminate in the bridge 
     
    35063516 
    35073517    /** 
    3508      * Specify default ptime. 
     3518     * Specify default codec ptime. 
    35093519     * 
    35103520     * Default: 0 (codec specific) 
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_core.c

    r1470 r1482  
    155155 
    156156    cfg->clock_rate = PJSUA_DEFAULT_CLOCK_RATE; 
     157    cfg->audio_frame_ptime = 10; 
    157158    cfg->max_media_ports = 32; 
    158159    cfg->has_ioqueue = PJ_TRUE; 
     
    18811882 
    18821883    p = pjsip_parse_uri(pool, url, len, 0); 
    1883     if (!p || pj_stricmp2(pjsip_uri_get_scheme(p), "sip") != 0) 
     1884    if (!p || (pj_stricmp2(pjsip_uri_get_scheme(p), "sip") != 0 && 
     1885               pj_stricmp2(pjsip_uri_get_scheme(p), "sips") != 0)) 
     1886    { 
    18841887        p = NULL; 
     1888    } 
    18851889 
    18861890    pj_pool_release(pool); 
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_media.c

    r1465 r1482  
    2323#define THIS_FILE               "pjsua_media.c" 
    2424 
    25 #define PTIME               20 
    26 #define FPS                 (1000/PTIME) 
    2725#define DEFAULT_RTP_PORT    4000 
    2826 
     
    156154     */ 
    157155    pjsua_var.mconf_cfg.samples_per_frame = pjsua_var.media_cfg.clock_rate *  
    158                                             PTIME / 1000; 
     156                                            pjsua_var.media_cfg.audio_frame_ptime /  
     157                                            1000; 
    159158    pjsua_var.mconf_cfg.channel_count = 1; 
    160159    pjsua_var.mconf_cfg.bits_per_sample = 16; 
     
    16491648    for (i=0; i<PJ_ARRAY_SIZE(clock_rates); ++i) { 
    16501649        char errmsg[PJ_ERR_MSG_SIZE]; 
     1650        unsigned fps; 
    16511651 
    16521652        PJ_LOG(4,(THIS_FILE,  
     
    16551655 
    16561656        /* Create the sound device. Sound port will start immediately. */ 
     1657        fps = 1000 / pjsua_var.media_cfg.audio_frame_ptime; 
    16571658        status = pjmedia_snd_port_create(pjsua_var.pool, capture_dev, 
    16581659                                         playback_dev,  
    16591660                                         clock_rates[i], 1, 
    1660                                          clock_rates[i]/FPS, 
     1661                                         clock_rates[i]/fps, 
    16611662                                         16, 0, &pjsua_var.snd_port); 
    16621663 
Note: See TracChangeset for help on using the changeset viewer.