Skip to content
This repository
Browse code

Merge pull request #3161 from FernetMenta/eac3

AE: distinguish between AC-3 and EAC-3
  • Loading branch information...
commit 22a94e41d4544414fb8c9b9ead6b825eb806ff31 2 parents 983a388 + ba4ae1d
Rainer Hochecker authored August 31, 2013
10  language/English/strings.po
@@ -1874,7 +1874,10 @@ msgctxt "#447"
1874 1874
 msgid "Autorun media"
1875 1875
 msgstr ""
1876 1876
 
1877  
-#empty string with id 448
  1877
+#: system/settings/settings.xml
  1878
+msgctxt "#448"
  1879
+msgid "Dolby Digital Plus (E-AC3) capable receiver"
  1880
+msgstr ""
1878 1881
 
1879 1882
 #: system/settings/settings.xml
1880 1883
 msgctxt "#449"
@@ -14372,3 +14375,8 @@ msgstr ""
14372 14375
 msgctxt "#37015"
14373 14376
 msgid "Browse Into"
14374 14377
 msgstr ""
  14378
+
  14379
+#: system/settings/settings.xml
  14380
+msgctxt "#37016"
  14381
+msgid "Select this option if your receiver is capable of decoding E-AC3 streams."
  14382
+msgstr ""
12  system/settings/settings.xml
@@ -2021,6 +2021,18 @@
2021 2021
             </dependency>
2022 2022
           </dependencies>
2023 2023
         </setting>
  2024
+        <setting id="audiooutput.eac3passthrough" type="boolean" parent="audiooutput.mode" label="448" help="37016">
  2025
+          <level>2</level>
  2026
+          <default>true</default>
  2027
+          <dependencies>
  2028
+            <dependency type="enable">
  2029
+              <or>
  2030
+                <condition setting="audiooutput.mode">1</condition> <!-- AUDIO_IEC958 -->
  2031
+                <condition setting="audiooutput.mode">2</condition> <!-- AUDIO_HDMI -->
  2032
+              </or>
  2033
+            </dependency>
  2034
+          </dependencies>
  2035
+        </setting>
2024 2036
         <setting id="audiooutput.dtspassthrough" type="boolean" parent="audiooutput.mode" label="254" help="36366">
2025 2037
           <level>2</level>
2026 2038
           <default>true</default>
3  xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
@@ -1218,6 +1218,7 @@ void CActiveAE::ApplySettingsToFormat(AEAudioFormat &format, AudioSettings &sett
1218 1218
   if (m_settings.mode != AUDIO_ANALOG && AE_IS_RAW(format.m_dataFormat))
1219 1219
   {
1220 1220
     if ((format.m_dataFormat == AE_FMT_AC3 && !settings.ac3passthrough) ||
  1221
+        (format.m_dataFormat == AE_FMT_EAC3 && !settings.eac3passthrough) ||
1221 1222
         (format.m_dataFormat == AE_FMT_TRUEHD && !settings.truehdpassthrough) ||
1222 1223
         (format.m_dataFormat == AE_FMT_DTS && !settings.dtspassthrough) ||
1223 1224
         (format.m_dataFormat == AE_FMT_DTSHD && !settings.dtshdpassthrough))
@@ -1903,6 +1904,7 @@ void CActiveAE::LoadSettings()
1903 1904
 
1904 1905
   m_settings.stereoupmix = CSettings::Get().GetBool("audiooutput.stereoupmix");
1905 1906
   m_settings.ac3passthrough = CSettings::Get().GetBool("audiooutput.ac3passthrough");
  1907
+  m_settings.eac3passthrough = CSettings::Get().GetBool("audiooutput.eac3passthrough");
1906 1908
   m_settings.truehdpassthrough = CSettings::Get().GetBool("audiooutput.truehdpassthrough");
1907 1909
   m_settings.dtspassthrough = CSettings::Get().GetBool("audiooutput.dtspassthrough");
1908 1910
   m_settings.dtshdpassthrough = CSettings::Get().GetBool("audiooutput.dtshdpassthrough");
@@ -1968,6 +1970,7 @@ void CActiveAE::OnSettingsChange(const std::string& setting)
1968 1970
       setting == "audiooutput.audiodevice"       ||
1969 1971
       setting == "audiooutput.mode"              ||
1970 1972
       setting == "audiooutput.ac3passthrough"    ||
  1973
+      setting == "audiooutput.eac3passthrough"   ||
1971 1974
       setting == "audiooutput.dtspassthrough"    ||
1972 1975
       setting == "audiooutput.passthroughaac"    ||
1973 1976
       setting == "audiooutput.truehdpassthrough" ||
1  xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.h
@@ -51,6 +51,7 @@ struct AudioSettings
51 51
   int mode;
52 52
   int channels;
53 53
   bool ac3passthrough;
  54
+  bool eac3passthrough;
54 55
   bool dtspassthrough;
55 56
   bool aacpassthrough;
56 57
   bool truehdpassthrough;
16  xbmc/cores/dvdplayer/DVDCodecs/Audio/DVDAudioCodecPassthrough.cpp
@@ -45,6 +45,7 @@ bool CDVDAudioCodecPassthrough::Open(CDVDStreamInfo &hints, CDVDCodecOptions &op
45 45
     return false;
46 46
 
47 47
   bool bSupportsAC3Out    = false;
  48
+  bool bSupportsEAC3Out   = false;
48 49
   bool bSupportsDTSOut    = false;
49 50
   bool bSupportsTrueHDOut = false;
50 51
   bool bSupportsDTSHDOut  = false;
@@ -53,6 +54,7 @@ bool CDVDAudioCodecPassthrough::Open(CDVDStreamInfo &hints, CDVDCodecOptions &op
53 54
   if (AUDIO_IS_BITSTREAM(audioMode))
54 55
   {
55 56
     bSupportsAC3Out = CSettings::Get().GetBool("audiooutput.ac3passthrough");
  57
+    bSupportsEAC3Out = CSettings::Get().GetBool("audiooutput.eac3passthrough");
56 58
     bSupportsDTSOut = CSettings::Get().GetBool("audiooutput.dtspassthrough");
57 59
   }
58 60
 
@@ -66,17 +68,13 @@ bool CDVDAudioCodecPassthrough::Open(CDVDStreamInfo &hints, CDVDCodecOptions &op
66 68
   m_info.SetCoreOnly(!bSupportsDTSHDOut);
67 69
   m_bufferSize = 0;
68 70
 
69  
-  if (
70  
-      (hints.codec == AV_CODEC_ID_AC3 && bSupportsAC3Out) ||
  71
+  if ((hints.codec == AV_CODEC_ID_AC3 && bSupportsAC3Out) ||
  72
+      (hints.codec == AV_CODEC_ID_EAC3 && bSupportsEAC3Out) ||
71 73
       (hints.codec == AV_CODEC_ID_DTS && bSupportsDTSOut) ||
72  
-      (audioMode == AUDIO_HDMI &&
73  
-        (
74  
-          (hints.codec == AV_CODEC_ID_EAC3   && bSupportsAC3Out   ) ||
75  
-          (hints.codec == AV_CODEC_ID_TRUEHD && bSupportsTrueHDOut)
76  
-        )
77  
-      )
78  
-  )
  74
+      (hints.codec == AV_CODEC_ID_TRUEHD && bSupportsTrueHDOut))
  75
+  {
79 76
     return true;
  77
+  }
80 78
 
81 79
   return false;
82 80
 }
1  xbmc/settings/Settings.cpp
@@ -869,6 +869,7 @@ void CSettings::InitializeISettingCallbacks()
869 869
   settingSet.insert("audiooutput.guisoundmode");
870 870
   settingSet.insert("audiooutput.stereoupmix");
871 871
   settingSet.insert("audiooutput.ac3passthrough");
  872
+  settingSet.insert("audiooutput.eac3passthrough");
872 873
   settingSet.insert("audiooutput.dtspassthrough");
873 874
   settingSet.insert("audiooutput.passthroughaac");
874 875
   settingSet.insert("audiooutput.truehdpassthrough");

0 notes on commit 22a94e4

Please sign in to comment.
Something went wrong with that request. Please try again.