aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpopcornmix <popcornmix@gmail.com>2014-11-18 18:53:42 +0000
committerpopcornmix <popcornmix@gmail.com>2014-11-22 17:41:57 +0000
commit247bbf45d5427e193a63942c00556b68dc1fbefb (patch)
treec723815a87f8d1c3bb473069ec7b2a86b9709488
parent59aae3d255bc5591b51d9d696862c02b68310828 (diff)
[omxplayer] Fix for EAC3 passthrough
The Pi firmware supports EAC3 passthrough okay, but we weren't correctly enabling support. See: https://github.com/OpenELEC/OpenELEC.tv/issues/3302
-rw-r--r--xbmc/cores/omxplayer/OMXAudio.h1
-rw-r--r--xbmc/cores/omxplayer/OMXPlayerAudio.cpp5
2 files changed, 6 insertions, 0 deletions
diff --git a/xbmc/cores/omxplayer/OMXAudio.h b/xbmc/cores/omxplayer/OMXAudio.h
index 3ff959f7d9..569cb0980b 100644
--- a/xbmc/cores/omxplayer/OMXAudio.h
+++ b/xbmc/cores/omxplayer/OMXAudio.h
@@ -48,6 +48,7 @@ extern "C" {
#define OMX_IS_RAW(x) \
( \
(x) == AE_FMT_AC3 || \
+ (x) == AE_FMT_EAC3 || \
(x) == AE_FMT_DTS \
)
diff --git a/xbmc/cores/omxplayer/OMXPlayerAudio.cpp b/xbmc/cores/omxplayer/OMXPlayerAudio.cpp
index a83fda8790..66014d4305 100644
--- a/xbmc/cores/omxplayer/OMXPlayerAudio.cpp
+++ b/xbmc/cores/omxplayer/OMXPlayerAudio.cpp
@@ -530,6 +530,11 @@ AEDataFormat OMXPlayerAudio::GetDataFormat(CDVDStreamInfo hints)
dataFormat = AE_FMT_AC3;
m_passthrough = true;
}
+ if(hints.codec == AV_CODEC_ID_EAC3 && CAEFactory::SupportsRaw(AE_FMT_AC3, hints.samplerate * 4) && !CSettings::Get().GetBool("audiooutput.dualaudio"))
+ {
+ dataFormat = AE_FMT_EAC3;
+ m_passthrough = true;
+ }
if(hints.codec == AV_CODEC_ID_DTS && CAEFactory::SupportsRaw(AE_FMT_DTS, hints.samplerate) && !CSettings::Get().GetBool("audiooutput.dualaudio"))
{
dataFormat = AE_FMT_DTS;