aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/depends/target/libandroidjni/Makefile2
-rw-r--r--xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp14
2 files changed, 15 insertions, 1 deletions
diff --git a/tools/depends/target/libandroidjni/Makefile b/tools/depends/target/libandroidjni/Makefile
index 2feedb2e78..eebd8f5ce4 100644
--- a/tools/depends/target/libandroidjni/Makefile
+++ b/tools/depends/target/libandroidjni/Makefile
@@ -3,7 +3,7 @@ DEPS= ../../Makefile.include Makefile
# lib name, version
LIBNAME=libandroidjni
-VERSION=4c1dc017a1b695fd5976fc3e700d466b89e1a778
+VERSION=072eb4622d223e5a28c06c5e0402538583e75cf6
SOURCE=archive
ARCHIVE=$(VERSION).tar.gz
GIT_BASE_URL=https://github.com/xbmc
diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp
index 42dd950120..bfc8a77242 100644
--- a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp
+++ b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp
@@ -143,6 +143,20 @@ static int AEChannelMapToAUDIOTRACKChannelMask(CAEChannelInfo info)
{
info.ResolveChannels(KnownChannels);
+ // Detect layouts with 6 channels including one LFE channel
+ // We currently support the following layouts:
+ // 5.1 FL+FR+FC+LFE+BL+BR
+ // 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++)