Downmix filter will now check if the input already is Mono/Stereo, so we can safely invoke the filter for ALL sources.

This commit is contained in:
LoRd_MuldeR 2011-08-07 14:04:17 +02:00
parent ea4b30a12a
commit dae4def2fa
6 changed files with 38 additions and 32 deletions

View File

@ -23,6 +23,7 @@ a:visited { color: #0000EE; }
<li>Updated Qt runtime libraries to v4.8.0 Beta-1 (2011-07-19), compiled with MSVC 10.0
<li>Updated MediaInfo to v0.7.47 (2011-07-27), compiled with MSVC 10.0
<li>Updated language files (big thank-you to all contributors !!!)
<li>Improved "downmix" filter by using explicit channel mappings for each number of input channels
<li>Fixed Cue Sheet import for tracks with certain characters in the title
<li>Workaround for malicious "anti-virus" programs that prevent innocent applications from functioning
<li>Enabled "Aero Glass" theme in installer and web-update program (Vista and Windows 7 only)

View File

@ -2413,77 +2413,77 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="215"/>
<location filename="../../src/Thread_Process.cpp" line="213"/>
<source>Done.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="215"/>
<location filename="../../src/Thread_Process.cpp" line="213"/>
<source>Aborted!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="215"/>
<location filename="../../src/Thread_Process.cpp" line="213"/>
<source>Failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="230"/>
<location filename="../../src/Thread_Process.cpp" line="228"/>
<source>Encoding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="233"/>
<location filename="../../src/Thread_Process.cpp" line="231"/>
<source>Filtering</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="236"/>
<location filename="../../src/Thread_Process.cpp" line="234"/>
<source>Decoding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="259"/>
<location filename="../../src/Thread_Process.cpp" line="257"/>
<source>The source audio file could not be found:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="266"/>
<location filename="../../src/Thread_Process.cpp" line="264"/>
<source>The source audio file could not be opened for reading:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="292"/>
<location filename="../../src/Thread_Process.cpp" line="290"/>
<source>The target output directory doesn&apos;t exist and could NOT be created:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="300"/>
<location filename="../../src/Thread_Process.cpp" line="298"/>
<source>The target output directory is NOT writable:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="310"/>
<location filename="../../src/Thread_Process.cpp" line="308"/>
<source>Unknown File Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="312"/>
<location filename="../../src/Thread_Process.cpp" line="310"/>
<source>Unknown Title</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="313"/>
<location filename="../../src/Thread_Process.cpp" line="311"/>
<source>Unknown Artist</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="314"/>
<location filename="../../src/Thread_Process.cpp" line="312"/>
<source>Unknown Album</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/Thread_Process.cpp" line="316"/>
<location filename="../../src/Thread_Process.cpp" line="314"/>
<source>Unknown Comment</source>
<translation type="unfinished"></translation>
</message>

View File

@ -29,8 +29,8 @@
#define VER_LAMEXP_MINOR_HI 0
#define VER_LAMEXP_MINOR_LO 3
#define VER_LAMEXP_TYPE Alpha
#define VER_LAMEXP_PATCH 8
#define VER_LAMEXP_BUILD 626
#define VER_LAMEXP_PATCH 9
#define VER_LAMEXP_BUILD 628
///////////////////////////////////////////////////////////////////////////////
// Tools versions

View File

@ -649,7 +649,7 @@ void ProcessingDialog::startNextJob(void)
);
//Add audio filters
if(m_settings->forceStereoDownmix() && ((currentFile.formatAudioChannels() > 2) || (currentFile.formatAudioChannels() == 0)))
if(m_settings->forceStereoDownmix())
{
thread->addFilter(new DownmixFilter());
}

View File

@ -46,6 +46,13 @@ bool DownmixFilter::apply(const QString &sourceFile, const QString &outputFile,
unsigned int channels = detectChannels(sourceFile, abortFlag);
emit messageLogged(QString().sprintf("--> Number of channels is: %d\n", channels));
if((channels == 1) || (channels == 2))
{
messageLogged("Skipping downmix!");
qDebug("Dowmmix not required for Mono or Stereo input, skipping!");
return false;
}
QProcess process;
QStringList args;

View File

@ -135,7 +135,7 @@ void ProcessThread::processFile()
}
//Do we need Stereo downmix?
if(m_encoder->requiresDownmix() && ((m_audioFile.formatAudioChannels() > 2) || (m_audioFile.formatAudioChannels() == 0)))
if(m_encoder->requiresDownmix())
{
insertDownmixFilter();
}
@ -173,28 +173,26 @@ void ProcessThread::processFile()
}
}
//Apply all filters
while(!m_filters.isEmpty())
//Apply all audio filters
if(bSuccess)
{
QString tempFile = generateTempFileName();
AbstractFilter *poFilter = m_filters.takeFirst();
if(bSuccess)
while(!m_filters.isEmpty())
{
QString tempFile = generateTempFileName();
AbstractFilter *poFilter = m_filters.takeFirst();
m_currentStep = FilteringStep;
connect(poFilter, SIGNAL(statusUpdated(int)), this, SLOT(handleUpdate(int)), Qt::DirectConnection);
connect(poFilter, SIGNAL(messageLogged(QString)), this, SLOT(handleMessage(QString)), Qt::DirectConnection);
m_currentStep = FilteringStep;
bSuccess = poFilter->apply(sourceFile, tempFile, &m_aborted);
if(bSuccess)
if(poFilter->apply(sourceFile, tempFile, &m_aborted))
{
sourceFile = tempFile;
handleMessage("\n-------------------------------\n");
}
}
delete poFilter;
handleMessage("\n-------------------------------\n");
delete poFilter;
}
}
//Encode audio file