avfilter/af_sofalizer: make lfe gain user configurable
Default settings have it too low. Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
		
							parent
							
								
									79bf4d1450
								
							
						
					
					
						commit
						f5e5c53117
					
				| @ -3606,6 +3606,9 @@ Each virtual loudspeaker description is separated by '|'. | |||||||
| For example to override front left and front right channel positions use: | For example to override front left and front right channel positions use: | ||||||
| 'speakers=FL 45 15|FR 345 15'. | 'speakers=FL 45 15|FR 345 15'. | ||||||
| Descriptions with unrecognised channel names are ignored. | Descriptions with unrecognised channel names are ignored. | ||||||
|  | 
 | ||||||
|  | @item lfegain | ||||||
|  | Set custom gain for LFE channels. Value is in dB. Default is 0. | ||||||
| @end table | @end table | ||||||
| 
 | 
 | ||||||
| @subsection Examples | @subsection Examples | ||||||
|  | |||||||
| @ -70,6 +70,7 @@ typedef struct SOFAlizerContext { | |||||||
|     float *speaker_azim;        /* azimuth of the virtual loudspeakers */ |     float *speaker_azim;        /* azimuth of the virtual loudspeakers */ | ||||||
|     float *speaker_elev;        /* elevation of the virtual loudspeakers */ |     float *speaker_elev;        /* elevation of the virtual loudspeakers */ | ||||||
|     char *speakers_pos;         /* custom positions of the virtual loudspeakers */ |     char *speakers_pos;         /* custom positions of the virtual loudspeakers */ | ||||||
|  |     float lfe_gain;             /* initial gain for the LFE channel */ | ||||||
|     float gain_lfe;             /* gain applied to LFE channel */ |     float gain_lfe;             /* gain applied to LFE channel */ | ||||||
|     int lfe_channel;            /* LFE channel position in channel layout */ |     int lfe_channel;            /* LFE channel position in channel layout */ | ||||||
| 
 | 
 | ||||||
| @ -1067,7 +1068,7 @@ static int config_input(AVFilterLink *inlink) | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     /* gain -3 dB per channel, -6 dB to get LFE on a similar level */ |     /* gain -3 dB per channel, -6 dB to get LFE on a similar level */ | ||||||
|     s->gain_lfe = expf((s->gain - 3 * inlink->channels - 6) / 20 * M_LN10); |     s->gain_lfe = expf((s->gain - 3 * inlink->channels - 6 + s->lfe_gain) / 20 * M_LN10); | ||||||
| 
 | 
 | ||||||
|     s->n_conv = nb_input_channels; |     s->n_conv = nb_input_channels; | ||||||
| 
 | 
 | ||||||
| @ -1197,6 +1198,7 @@ static const AVOption sofalizer_options[] = { | |||||||
|     { "time",      "time domain",      0,               AV_OPT_TYPE_CONST,  {.i64=0},       0,   0, .flags = FLAGS, "type" }, |     { "time",      "time domain",      0,               AV_OPT_TYPE_CONST,  {.i64=0},       0,   0, .flags = FLAGS, "type" }, | ||||||
|     { "freq",      "frequency domain", 0,               AV_OPT_TYPE_CONST,  {.i64=1},       0,   0, .flags = FLAGS, "type" }, |     { "freq",      "frequency domain", 0,               AV_OPT_TYPE_CONST,  {.i64=1},       0,   0, .flags = FLAGS, "type" }, | ||||||
|     { "speakers",  "set speaker custom positions", OFFSET(speakers_pos), AV_OPT_TYPE_STRING,  {.str=0},    0, 0, .flags = FLAGS }, |     { "speakers",  "set speaker custom positions", OFFSET(speakers_pos), AV_OPT_TYPE_STRING,  {.str=0},    0, 0, .flags = FLAGS }, | ||||||
|  |     { "lfegain",   "set lfe gain",                 OFFSET(lfe_gain),     AV_OPT_TYPE_FLOAT,   {.dbl=0},   -9, 9, .flags = FLAGS }, | ||||||
|     { NULL } |     { NULL } | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user