Skip to content
Browse files

Add options to use myth's own downmixer instead of ffmpeg's downmixer…

…. This fix the issue with low volume audio for 5.1 AC3 stream on a stereo system. Fixes #6569

git-svn-id: http://svn.mythtv.org/svn/trunk@27370 7dbf422c-18fa-0310-86e9-fd20926502f2
  • Loading branch information...
1 parent 38e6b03 commit 2d67f9f5a384fab8aced0e3ed9f82065864f758d @jyavenard jyavenard committed Nov 29, 2010
View
4 mythtv/libs/libmythtv/avformatdecoder.cpp
@@ -4501,6 +4501,10 @@ void AvFormatDecoder::SetDisablePassThrough(bool disable)
inline bool AvFormatDecoder::DecoderWillDownmix(const AVCodecContext *ctx)
{
+ if (gCoreContext->GetNumSetting("AdvancedAudioSettings", false) &&
+ gCoreContext->GetNumSetting("AudioDownmixOverride", false))
+ return false;
+
switch (ctx->codec_id)
{
case CODEC_ID_AC3:
View
14 mythtv/programs/mythfrontend/globalsettings.cpp
@@ -195,6 +195,7 @@ AudioConfigSettings::AudioConfigSettings() :
ConfigurationGroup *settings5 =
new HorizontalConfigurationGroup(false, false);
settings5->addChild(Audio48kOverride());
+ settings5->addChild(DownmixOverride());
m_triggerMPCM = new TransCheckBoxSetting();
m_MPCM = MPCM();
@@ -475,6 +476,19 @@ HostCheckBox *AudioConfigSettings::Audio48kOverride()
return gc;
}
+HostCheckBox *AudioConfigSettings::DownmixOverride()
+{
+ HostCheckBox *gc = new HostCheckBox("AudioDownmixOverride");
+ gc->setLabel(QObject::tr("Always use internal downmixer"));
+ gc->setValue(false);
+ gc->setHelpText(QObject::tr("If uncheck, for AC3 and DTS audio content; "
+ "use ffmpeg's internal downmixer when required."
+ " If checked, Myth's own downmixer will be used"
+ " for all content. While not as fast, it "
+ "doesn't suffer from low volume issues."));
+ return gc;
+}
+
HostCheckBox *AudioConfigSettings::PassThroughOverride()
{
HostCheckBox *gc = new HostCheckBox("PassThruDeviceOverride");
View
1 mythtv/programs/mythfrontend/globalsettings.h
@@ -43,6 +43,7 @@ class AudioConfigSettings : public VerticalConfigurationGroup
HostCheckBox *SRCQualityOverride();
HostComboBox *SRCQuality();
HostCheckBox *Audio48kOverride();
+ HostCheckBox *DownmixOverride();
HostCheckBox *PassThroughOverride();
HostComboBox *PassThroughOutputDevice();

0 comments on commit 2d67f9f

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