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

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/include/pjsua2/media.hpp

    r5717 r5792  
    193193}; 
    194194 
     195struct AudioMediaTransmitParam 
     196{ 
     197    /** 
     198     * Signal level adjustment. Value 1.0 means no level adjustment, 
     199     * while value 0 means to mute the port. 
     200     * 
     201     * Default: 1.0 
     202     */ 
     203    float               level; 
     204 
     205public: 
     206    /** 
     207     * Default constructor 
     208     */ 
     209    AudioMediaTransmitParam(); 
     210}; 
     211 
    195212/** 
    196213 * Audio Media. 
     
    228245     */ 
    229246    void startTransmit(const AudioMedia &sink) const throw(Error); 
     247 
     248    /** 
     249     * Establish unidirectional media flow to sink. This media port 
     250     * will act as a source, and it may transmit to multiple destinations/sink. 
     251     * And if multiple sources are transmitting to the same sink, the media 
     252     * will be mixed together. Source and sink may refer to the same Media, 
     253     * effectively looping the media. 
     254     * 
     255     * Signal level from this source to the sink can be adjusted by making 
     256     * it louder or quieter via the parameter param. The level adjustment 
     257     * will apply to a specific connection only (i.e. only for signal 
     258     * from this source to the sink), as compared to 
     259     * adjustTxLevel()/adjustRxLevel() which applies to all signals from/to 
     260     * this media port. The signal adjustment 
     261     * will be cumulative, in this following order: 
     262     * signal from this source will be adjusted with the level specified 
     263     * in adjustTxLevel(), then with the level specified via this API, 
     264     * and finally with the level specified to the sink's adjustRxLevel(). 
     265     * 
     266     * If bidirectional media flow is desired, application needs to call 
     267     * this method twice, with the second one called from the opposite source 
     268     * media. 
     269     * 
     270     * @param sink              The destination Media. 
     271     * @param param             The parameter. 
     272     */ 
     273    void startTransmit2(const AudioMedia &sink,  
     274                        const AudioMediaTransmitParam &param) const 
     275         throw(Error); 
    230276 
    231277    /** 
Note: See TracChangeset for help on using the changeset viewer.