From 4cf4028331f9605cdd3ed5ff7a8ca2fbdaedf7fd Mon Sep 17 00:00:00 2001 From: John Stebbins Date: Thu, 2 Aug 2012 11:23:06 -0700 Subject: libavresample: add mix level normalization option Provides an option to disable mix level normalization Signed-off-by: Diego Biurrun --- libavresample/audio_mix.c | 4 +++- libavresample/internal.h | 1 + libavresample/options.c | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) (limited to 'libavresample') diff --git a/libavresample/audio_mix.c b/libavresample/audio_mix.c index e8ab2e3ee7..f948c82788 100644 --- a/libavresample/audio_mix.c +++ b/libavresample/audio_mix.c @@ -335,7 +335,9 @@ int ff_audio_mix_init(AVAudioResampleContext *avr) avr->out_channel_layout, avr->center_mix_level, avr->surround_mix_level, - avr->lfe_mix_level, 1, matrix_dbl, + avr->lfe_mix_level, + avr->normalize_mix_level, + matrix_dbl, avr->in_channels, avr->matrix_encoding); if (ret < 0) { diff --git a/libavresample/internal.h b/libavresample/internal.h index 7b7648f0be..006b6fd14a 100644 --- a/libavresample/internal.h +++ b/libavresample/internal.h @@ -45,6 +45,7 @@ struct AVAudioResampleContext { double center_mix_level; /**< center mix level */ double surround_mix_level; /**< surround mix level */ double lfe_mix_level; /**< lfe mix level */ + int normalize_mix_level; /**< enable mix level normalization */ int force_resampling; /**< force resampling */ int filter_size; /**< length of each FIR filter in the resampling filterbank relative to the cutoff frequency */ int phase_shift; /**< log2 of the number of entries in the resampling polyphase filterbank */ diff --git a/libavresample/options.c b/libavresample/options.c index 02e1f86308..e7e0c27c4d 100644 --- a/libavresample/options.c +++ b/libavresample/options.c @@ -47,6 +47,7 @@ static const AVOption options[] = { { "center_mix_level", "Center Mix Level", OFFSET(center_mix_level), AV_OPT_TYPE_DOUBLE, { M_SQRT1_2 }, -32.0, 32.0, PARAM }, { "surround_mix_level", "Surround Mix Level", OFFSET(surround_mix_level), AV_OPT_TYPE_DOUBLE, { M_SQRT1_2 }, -32.0, 32.0, PARAM }, { "lfe_mix_level", "LFE Mix Level", OFFSET(lfe_mix_level), AV_OPT_TYPE_DOUBLE, { 0.0 }, -32.0, 32.0, PARAM }, + { "normalize_mix_level", "Normalize Mix Level", OFFSET(normalize_mix_level), AV_OPT_TYPE_INT, { 1 }, 0, 1, PARAM }, { "force_resampling", "Force Resampling", OFFSET(force_resampling), AV_OPT_TYPE_INT, { 0 }, 0, 1, PARAM }, { "filter_size", "Resampling Filter Size", OFFSET(filter_size), AV_OPT_TYPE_INT, { 16 }, 0, 32, /* ??? */ PARAM }, { "phase_shift", "Resampling Phase Shift", OFFSET(phase_shift), AV_OPT_TYPE_INT, { 10 }, 0, 30, /* ??? */ PARAM }, -- cgit v1.2.3