diff options
-rw-r--r-- | tools/depends/target/libandroidjni/Makefile | 2 | ||||
-rw-r--r-- | xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp | 14 |
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++) |