From 79a9da3ed267f2fa95aa9615dd662a1cea2e9d81 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 10 Jun 2018 00:31:35 +0100 Subject: [PATCH] Modify the downmix mapping so that we include Ls, Rs and Lfe (#1281). --- ChangeLog | 4 ++++ src/wx/film_viewer.cc | 17 +++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7f4c185f2..ad96a4aad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2018-06-10 Carl Hetherington + + * Include Ls/Rs and Lfe in 5.1-to-stereo downmix in the player. + 2018-06-09 Carl Hetherington * Fix bad parsing of ASS lines embedded into FFmpeg files diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc index 2c0712e92..a7e040bb5 100644 --- a/src/wx/film_viewer.cc +++ b/src/wx/film_viewer.cc @@ -251,13 +251,18 @@ FilmViewer::recreate_butler () map.set (i, i, 1); } } else { - /* Special case: stereo output, at least 3 channel input, map L+R to L/R and - C to both, all 3dB down. + /* Special case: stereo output, at least 3 channel input. + Map so that Lt = L(-3dB) + Ls(-3dB) + C(-6dB) + Lfe(-10dB) + Rt = R(-3dB) + Rs(-3dB) + C(-6dB) + Lfe(-10dB) */ - map.set (0, 0, 1 / sqrt(2)); // L -> L - map.set (1, 1, 1 / sqrt(2)); // R -> R - map.set (2, 0, 1 / sqrt(2)); // C -> L - map.set (2, 1, 1 / sqrt(2)); // C -> R + map.set (dcp::LEFT, 0, 1 / sqrt(2)); // L -> Lt + map.set (dcp::RIGHT, 1, 1 / sqrt(2)); // R -> Rt + map.set (dcp::CENTRE, 0, 1 / 2.0); // C -> Lt + map.set (dcp::CENTRE, 1, 1 / 2.0); // C -> Rt + map.set (dcp::LFE, 0, 1 / sqrt(10)); // Lfe -> Lt + map.set (dcp::LFE, 1, 1 / sqrt(10)); // Lfe -> Rt + map.set (dcp::LS, 0, 1 / sqrt(2)); // Ls -> Lt + map.set (dcp::RS, 1, 1 / sqrt(2)); // Rs -> Rt } _butler.reset (new Butler (_player, _film->log(), map, _audio_channels)); -- 2.30.2