[asterisk-dev] [Code Review] Automatic Gain Normalization in meetme

Matthew Nicholson mnicholson at digium.com
Mon Feb 9 14:32:19 CST 2009


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://reviewboard.digium.com/r/146/#review373
-----------------------------------------------------------


There are several indentation issues with the code.  Please review according to the coding guidelines.


trunk/apps/app_meetme.c
<http://reviewboard.digium.com/r/146/#comment881>

    Indentation is incorrect here.  Please indent with tab according to the coding guidelines.



trunk/main/dsp.c
<http://reviewboard.digium.com/r/146/#comment892>

    Indentation



trunk/main/dsp.c
<http://reviewboard.digium.com/r/146/#comment885>

    Indentation



trunk/main/dsp.c
<http://reviewboard.digium.com/r/146/#comment886>

    Indentation



trunk/main/dsp.c
<http://reviewboard.digium.com/r/146/#comment887>

    Indentation



trunk/main/dsp.c
<http://reviewboard.digium.com/r/146/#comment893>

    The call to abs() here is unnecessary.  Doing (s[x] * s[x]) will always give you the same result as (abs(s[x]) * abs(s[x])).



trunk/main/dsp.c
<http://reviewboard.digium.com/r/146/#comment888>

    Indentation



trunk/main/dsp.c
<http://reviewboard.digium.com/r/146/#comment889>

    Indentation



trunk/main/dsp.c
<http://reviewboard.digium.com/r/146/#comment890>

    Indentation



trunk/main/dsp.c
<http://reviewboard.digium.com/r/146/#comment891>

    Indentation


- Matthew


On 2009-02-08 13:24:27, chetanv wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://reviewboard.digium.com/r/146/
> -----------------------------------------------------------
> 
> (Updated 2009-02-08 13:24:27)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Summary
> -------
> 
> Often during an audio conference, one of the participants has set a high mic volume. Whenever he speaks, the other listeners hear his relatively high volume. Similarly, someone has a low voice or has set a low mic volume. Other participants have to strain to hear him.
> 
> This patch tries to overcome this problem by estimating the volume of the participants and adjusting their gain. This adjustment is done every 2 seconds in the meetme app.
> 
> The patch adds a "g" flag to the meetme app. This option is tied up with the "T" flag - talker detection. Both have to be on for this to work.
> 
> Changes are in apps/app_meetme.c, include/asterisk/dsp.h, main/dsp.c
> 
> In app_meetme, if the user is talking, his frame is used for gain related calculations (ast_dsp_gain()) and his volume is adjusted using the current value of the gain multiplication factor.
> The current gain multiplication factor is based on the past 100 frames of that user (past 2 seconds).
> 
> Three new fields have been added to ast_dsp structure:
>   * gain_mult_factor: The gain multiplication factor
>   * gain_buckets[]: The buckets array used in estimating the value of the gain multiplication factor
>   * numgainframes: Number of gain frames which have been processed
> 
> For every frame, the RMS gain (actually - square of RMS) is calculated and bucketed into 10 buckets (histogram). After 100 frames are bucketed this way, the histogram is used to estimate the gain multiplication factor. Starting from the right side of the histogram, the bucket with at-least 4 frames is picked and the corresponding gain multiplication factor is chosen. (There is a on-to-one mapping between the buckets of the histogram and the gain multiplication factor - GMF_VALUES[])
> 
> 
> Diffs
> -----
> 
>   trunk/apps/app_meetme.c 169716 
>   trunk/include/asterisk/dsp.h 169716 
>   trunk/main/dsp.c 169716 
> 
> Diff: http://reviewboard.digium.com/r/146/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> chetanv
> 
>




More information about the asterisk-dev mailing list