Ignore:
Timestamp:
Dec 19, 2017 1:45:37 AM (7 years ago)
Author:
nanang
Message:

Close #2077: New PJSUA & PJSUA2 APIs for instantiating extra audio device.

File:
1 edited

Legend:

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

    r5712 r5717  
    70457045 
    70467046 
     7047/** 
     7048 * Opaque type of extra sound device, an additional sound device 
     7049 * beside the primary sound device (the one instantiated via 
     7050 * pjsua_set_snd_dev() or pjsua_set_snd_dev2()). This sound device is 
     7051 * also registered to conference bridge so it can be used as a normal 
     7052 * conference bridge port, e.g: connect it to/from other ports, 
     7053 * adjust/check audio level, etc. The conference bridge port ID can be 
     7054 * queried using pjsua_ext_snd_dev_get_conf_port(). 
     7055 * 
     7056 * Application may also use this API to improve media clock. Normally 
     7057 * media clock is driven by sound device in master port, but unfortunately 
     7058 * some sound devices may produce jittery clock. To improve media clock, 
     7059 * application can install Null Sound Device (i.e: using 
     7060 * pjsua_set_null_snd_dev()), which will act as a master port, and instantiate 
     7061 * the sound device as extra sound device. But note that extra sound device 
     7062 * will not have auto-close upon idle feature. 
     7063 */ 
     7064typedef struct pjsua_ext_snd_dev pjsua_ext_snd_dev; 
     7065 
     7066 
     7067/** 
     7068 * Create an extra sound device and register it to conference bridge. 
     7069 * 
     7070 * @param snd_param     Sound device port param. 
     7071 * @param p_snd         The extra sound device instance. 
     7072 * 
     7073 * @return              PJ_SUCCESS on success or the appropriate error code. 
     7074 */ 
     7075PJ_DECL(pj_status_t) pjsua_ext_snd_dev_create(pjmedia_snd_port_param *param, 
     7076                                              pjsua_ext_snd_dev **p_snd); 
     7077 
     7078 
     7079/** 
     7080 * Destroy an extra sound device and unregister it from conference bridge. 
     7081 * 
     7082 * @param p_snd         The extra sound device instance. 
     7083 * 
     7084 * @return              PJ_SUCCESS on success or the appropriate error code. 
     7085 */ 
     7086PJ_DECL(pj_status_t) pjsua_ext_snd_dev_destroy(pjsua_ext_snd_dev *snd); 
     7087 
     7088 
     7089/** 
     7090 * Get sound port instance of an extra sound device. 
     7091 * 
     7092 * @param snd           The extra sound device instance. 
     7093 * 
     7094 * @return              The sound port instance. 
     7095 */ 
     7096PJ_DECL(pjmedia_snd_port*) pjsua_ext_snd_dev_get_snd_port( 
     7097                                            pjsua_ext_snd_dev *snd); 
     7098 
     7099/** 
     7100 * Get conference port ID of an extra sound device. 
     7101 * 
     7102 * @param snd           The extra sound device instance. 
     7103 * 
     7104 * @return              The conference port ID. 
     7105 */ 
     7106PJ_DECL(pjsua_conf_port_id) pjsua_ext_snd_dev_get_conf_port( 
     7107                                            pjsua_ext_snd_dev *snd); 
     7108 
     7109 
    70477110/***************************************************************************** 
    70487111 * Codecs. 
Note: See TracChangeset for help on using the changeset viewer.