aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfritsch <Peter.Fruehberger@gmail.com>2017-07-15 11:18:53 +0200
committerfritsch <Peter.Fruehberger@gmail.com>2017-10-05 19:22:41 +0200
commit35c9e0300c01103af7dd0c4b377d2aa72657872c (patch)
tree05b2464ddcd0ae7229c4e376cb7d160a23699205
parent81f97f7387ebeb13506a7f4998658054a15e353f (diff)
AESinkAudioTrack: Properly handle 7.1 formats
-rw-r--r--xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp
index 3ca25324be..8f559203fb 100644
--- a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp
@@ -148,9 +148,14 @@ static int AEChannelMapToAUDIOTRACKChannelMask(CAEChannelInfo info)
// 5.1(side) FL+FR+FC+LFE+SL+SR
// According to CEA-861-D only RR and RL are defined
// Therefore we let Android decide about the 5.1 mapping
+ // For 8 channel layouts including one LFE channel
+ // we leave the same decision to Android
if (info.Count() == 6 && info.HasChannel(AE_CH_LFE))
return CJNIAudioFormat::CHANNEL_OUT_5POINT1;
+ if (info.Count() == 8 && info.HasChannel(AE_CH_LFE))
+ return CJNIAudioFormat::CHANNEL_OUT_7POINT1_SURROUND;
+
int atMask = 0;
for (unsigned int i = 0; i < info.Count(); i++)