summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-06-10 00:31:35 +0100
committerCarl Hetherington <cth@carlh.net>2018-06-10 00:31:35 +0100
commit79a9da3ed267f2fa95aa9615dd662a1cea2e9d81 (patch)
treee7f7ba3a13844385d11f0e7899ee1d42f8ff44aa /src
parentf3db6f37c85352ad7631078907439ce8ff151b3d (diff)
Modify the downmix mapping so that we include Ls, Rs and Lfe (#1281).v2.13.29
Diffstat (limited to 'src')
-rw-r--r--src/wx/film_viewer.cc17
1 files changed, 11 insertions, 6 deletions
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));