diff options
author | jstebbins <[email protected]> | 2012-08-01 23:05:00 +0000 |
---|---|---|
committer | jstebbins <[email protected]> | 2012-08-01 23:05:00 +0000 |
commit | ad257c9dac38fe3f7502b1058247b4458465c0a8 (patch) | |
tree | c142e7b68aa0406b64e77a7f844b0622172fc5c9 /contrib/ffmpeg | |
parent | dbec0d898d37f3b9a1fed8158543115fbdb3ce91 (diff) |
libhb: Allow control of audio mix normalization
Since switching to libavresample for audio mixing, our output
volume levels have been reduced because libavresample
does mix level normalization by default. This change
applies a patch to libav to allow us to disable this behavior
and adds a new field to hb_audio_config_t to allow the
hb frontends to control this feature.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4884 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'contrib/ffmpeg')
-rw-r--r-- | contrib/ffmpeg/A06-mix-normalization.patch | 39 |
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 }, |