Changeset 909:c7abe5d46b50 in mediastreamer2


Ignore:
Timestamp:
Mar 12, 2010 5:29:16 PM (3 years ago)
Author:
Jehan Monnier <jehan.monnier@…>
Branch:
default
Children:
910:f4f8118b46ff, 923:e2a0e6eb72d7
committer:
Jehan Monnier <jehan.monnier@linphone.org> 1268411516 -3600
Message:

add set gain in DB for MSVolume

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • include/mediastreamer2/mscommon.h

    r856 r909  
    174174 * Filters that generate data that can be sent through RTP should make packets 
    175175 * whose size is below ms_get_payload_max_size(). 
    176  * The default value is 1440 computed as the standart internet MTU minus IPv6 header, 
     176 * The default value is 1440 computed as the standard internet MTU minus IPv6 header, 
    177177 * UDP header and RTP header. As IPV4 header is smaller than IPv6 header, this  
    178178 * value works for both. 
  • include/mediastreamer2/msvolume.h

    r856 r909  
    5959#define MS_VOLUME_SET_NOISE_GATE_FLOORGAIN MS_FILTER_METHOD(MS_VOLUME_ID,12,float) 
    6060 
     61/* set a gain in db */ 
     62#define MS_VOLUME_SET_DB_GAIN           MS_FILTER_METHOD(MS_VOLUME_ID,13,float) 
     63 
    6164extern MSFilterDesc ms_volume_desc; 
    6265 
  • src/gsm.c

    r856 r909  
    4848        EncState *s=(EncState*)f->data; 
    4949        mblk_t *im; 
    50         int16_t buf[160]; 
     50        int16_t buf[320]; 
    5151         
    5252        while((im=ms_queue_get(f->inputs[0]))!=NULL){ 
     
    5454        } 
    5555        while(ms_bufferizer_read(s->bufferizer,(uint8_t*)buf,sizeof(buf))==sizeof(buf)) { 
    56                 mblk_t *om=allocb(33,0); 
     56                mblk_t *om=allocb(66,0); 
    5757                gsm_encode(s->state,(gsm_signal*)buf,(gsm_byte*)om->b_wptr); 
     58                om->b_wptr+=33; 
     59                gsm_encode(s->state,(gsm_signal*)(buf+160),(gsm_byte*)om->b_wptr); 
    5860                om->b_wptr+=33; 
    5961                mblk_set_timestamp_info(om,s->ts); 
  • src/msvolume.c

    r856 r909  
    107107        Volume *v=(Volume*)f->data; 
    108108        *farg=10*ortp_log10f((v->energy+1)/max_e); 
    109  
    110109        return 0; 
    111110} 
     
    200199} 
    201200 
     201static int volume_set_db_gain(MSFilter *f, void *gain){ 
     202        float *fgain=(float*)gain; 
     203        Volume *v=(Volume*)f->data; 
     204        v->gain=v->static_gain=v->target_gain = pow(10,(*fgain)/10); 
     205        ms_message("MSVolume set gain to [%f db], [%f] linear",*fgain,v->gain); 
     206        return 0; 
     207} 
     208 
    202209static int volume_set_gain(MSFilter *f, void *arg){ 
    203210        float *farg=(float*)arg; 
     
    392399        {       MS_VOLUME_SET_NOISE_GATE_THRESHOLD,     volume_set_noise_gate_threshold}, 
    393400        {       MS_VOLUME_SET_NOISE_GATE_FLOORGAIN,     volume_set_noise_gate_floorgain}, 
     401        {       MS_VOLUME_SET_DB_GAIN   ,       volume_set_db_gain              }, 
    394402        {       0                       ,       NULL                    } 
    395403}; 
Note: See TracChangeset for help on using the changeset viewer.