Ignore:
Timestamp:
May 15, 2018 8:23:44 AM (18 months ago)
Author:
ming
Message:

Closed #2113: Implement conference signal level adjustment for a specific connection

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/include/pjmedia/conference.h

    r3664 r5792  
    7272    unsigned            listener_cnt;       /**< Number of listeners.       */ 
    7373    unsigned           *listener_slots;     /**< Array of listeners.        */ 
     74    unsigned           *listener_adj_level; /**< Array of listeners' level 
     75                                                 adjustment                 */ 
    7476    unsigned            transmitter_cnt;    /**< Number of transmitter.     */ 
    7577    unsigned            clock_rate;         /**< Clock rate of the port.    */ 
     
    296298 
    297299/** 
    298  * Enable unidirectional audio from the specified source slot to the 
    299  * specified sink slot. 
     300 * Enable unidirectional audio from the specified source slot to the specified 
     301 * sink slot. 
     302 * Application may adjust the level to make signal transmitted from the source 
     303 * slot to the sink slot either louder or more quiet. The level adjustment is 
     304 * calculated with this formula: 
     305 * <b><tt>output = input * (adj_level+128) / 128</tt></b>. Using this, zero 
     306 * indicates no adjustment, the value -128 will mute the signal, and the value 
     307 * of +128 will make the signal 100% louder, +256 will make it 200% louder, 
     308 * etc. 
     309 * 
     310 * The level adjustment will apply to a specific connection only (i.e. only 
     311 * for the signal from the source to the sink), as compared to 
     312 * pjmedia_conf_adjust_tx_level()/pjmedia_conf_adjust_rx_level() which 
     313 * applies to all signals from/to that port. The signal adjustment 
     314 * will be cumulative, in this following order: 
     315 * signal from the source will be adjusted with the level specified 
     316 * in pjmedia_conf_adjust_rx_level(), then with the level specified 
     317 * via this API, and finally with the level specified to the sink's 
     318 * pjmedia_conf_adjust_tx_level().  
    300319 * 
    301320 * @param conf          The conference bridge. 
    302321 * @param src_slot      Source slot. 
    303322 * @param sink_slot     Sink slot. 
    304  * @param level         This argument is reserved for future improvements 
    305  *                      where it is possible to adjust the level of signal 
    306  *                      transmitted in a specific connection. For now, 
    307  *                      this argument MUST be zero. 
     323 * @param adj_level     Adjustment level, which must be greater than or equal 
     324 *                      to -128. A value of zero means there is no level 
     325 *                      adjustment to be made, the value -128 will mute the 
     326 *                      signal, and the value of +128 will make the signal 
     327 *                      100% louder, +256 will make it 200% louder, etc. 
     328 *                      See the function description for the formula. 
    308329 * 
    309330 * @return              PJ_SUCCES on success. 
     
    312333                                                unsigned src_slot, 
    313334                                                unsigned sink_slot, 
    314                                                 int level ); 
     335                                                int adj_level ); 
    315336 
    316337 
     
    497518 
    498519 
     520/** 
     521 * Adjust the level of signal to be transmitted from the source slot to the 
     522 * sink slot. 
     523 * Application may adjust the level to make signal transmitted from the source 
     524 * slot to the sink slot either louder or more quiet. The level adjustment is 
     525 * calculated with this formula: 
     526 * <b><tt>output = input * (adj_level+128) / 128</tt></b>. Using this, zero 
     527 * indicates no adjustment, the value -128 will mute the signal, and the value 
     528 * of +128 will make the signal 100% louder, +256 will make it 200% louder, 
     529 * etc. 
     530 * 
     531 * The level adjustment value will stay with the connection until the 
     532 * connection is removed or new adjustment value is set. The current level 
     533 * adjustment value is reported in the media port info when the 
     534 * #pjmedia_conf_get_port_info() function is called. 
     535 * 
     536 * @param conf          The conference bridge. 
     537 * @param src_slot      Source slot. 
     538 * @param sink_slot     Sink slot. 
     539 * @param adj_level     Adjustment level, which must be greater than or equal 
     540 *                      to -128. A value of zero means there is no level 
     541 *                      adjustment to be made, the value -128 will mute the  
     542 *                      signal, and the value of +128 will make the signal  
     543 *                      100% louder, +256 will make it 200% louder, etc.  
     544 *                      See the function description for the formula. 
     545 * 
     546 * @return              PJ_SUCCESS on success. 
     547 */ 
     548PJ_DECL(pj_status_t) pjmedia_conf_adjust_conn_level( pjmedia_conf *conf, 
     549                                                     unsigned src_slot, 
     550                                                     unsigned sink_slot, 
     551                                                     int adj_level ); 
     552 
     553 
    499554 
    500555PJ_END_DECL 
Note: See TracChangeset for help on using the changeset viewer.