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 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 MediaInfo to v0.7.47 (2011-07-27), compiled with MSVC 10.0
<li>Updated language files (big thank-you to all contributors !!!) <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>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>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) <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> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="215"/> <location filename="../../src/Thread_Process.cpp" line="213"/>
<source>Done.</source> <source>Done.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="215"/> <location filename="../../src/Thread_Process.cpp" line="213"/>
<source>Aborted!</source> <source>Aborted!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="215"/> <location filename="../../src/Thread_Process.cpp" line="213"/>
<source>Failed!</source> <source>Failed!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="230"/> <location filename="../../src/Thread_Process.cpp" line="228"/>
<source>Encoding</source> <source>Encoding</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="233"/> <location filename="../../src/Thread_Process.cpp" line="231"/>
<source>Filtering</source> <source>Filtering</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="236"/> <location filename="../../src/Thread_Process.cpp" line="234"/>
<source>Decoding</source> <source>Decoding</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<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> <source>The source audio file could not be found:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<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> <source>The source audio file could not be opened for reading:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<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> <source>The target output directory doesn&apos;t exist and could NOT be created:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<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> <source>The target output directory is NOT writable:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="310"/> <location filename="../../src/Thread_Process.cpp" line="308"/>
<source>Unknown File Name</source> <source>Unknown File Name</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="312"/> <location filename="../../src/Thread_Process.cpp" line="310"/>
<source>Unknown Title</source> <source>Unknown Title</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="313"/> <location filename="../../src/Thread_Process.cpp" line="311"/>
<source>Unknown Artist</source> <source>Unknown Artist</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="314"/> <location filename="../../src/Thread_Process.cpp" line="312"/>
<source>Unknown Album</source> <source>Unknown Album</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/Thread_Process.cpp" line="316"/> <location filename="../../src/Thread_Process.cpp" line="314"/>
<source>Unknown Comment</source> <source>Unknown Comment</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

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

View File

@ -649,7 +649,7 @@ void ProcessingDialog::startNextJob(void)
); );
//Add audio filters //Add audio filters
if(m_settings->forceStereoDownmix() && ((currentFile.formatAudioChannels() > 2) || (currentFile.formatAudioChannels() == 0))) if(m_settings->forceStereoDownmix())
{ {
thread->addFilter(new DownmixFilter()); 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); unsigned int channels = detectChannels(sourceFile, abortFlag);
emit messageLogged(QString().sprintf("--> Number of channels is: %d\n", channels)); 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; QProcess process;
QStringList args; QStringList args;

View File

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