summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'contrib')
-rw-r--r--contrib/ffmpeg/A06-mix-normalization.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/contrib/ffmpeg/A06-mix-normalization.patch b/contrib/ffmpeg/A06-mix-normalization.patch
new file mode 100644
index 000000000..06fb2754c
--- /dev/null
+++ b/contrib/ffmpeg/A06-mix-normalization.patch
@@ -0,0 +1,39 @@
+diff --git a/libavresample/audio_mix.c b/libavresample/audio_mix.c
+index 2c2a356..25f9f98 100644
+--- a/libavresample/audio_mix.c
++++ b/libavresample/audio_mix.c
+@@ -327,7 +327,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 7b7648f..006b6fd 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 02e1f86..e7e0c27 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 },