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:
parent
ea4b30a12a
commit
dae4def2fa
@ -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)
|
||||||
|
@ -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't exist and could NOT be created:</source>
|
<source>The target output directory doesn'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>
|
||||||
|
@ -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
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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,29 +173,27 @@ void ProcessThread::processFile()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Apply all filters
|
//Apply all audio filters
|
||||||
|
if(bSuccess)
|
||||||
|
{
|
||||||
while(!m_filters.isEmpty())
|
while(!m_filters.isEmpty())
|
||||||
{
|
{
|
||||||
QString tempFile = generateTempFileName();
|
QString tempFile = generateTempFileName();
|
||||||
AbstractFilter *poFilter = m_filters.takeFirst();
|
AbstractFilter *poFilter = m_filters.takeFirst();
|
||||||
|
m_currentStep = FilteringStep;
|
||||||
|
|
||||||
if(bSuccess)
|
|
||||||
{
|
|
||||||
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");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
handleMessage("\n-------------------------------\n");
|
||||||
delete poFilter;
|
delete poFilter;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//Encode audio file
|
//Encode audio file
|
||||||
if(bSuccess)
|
if(bSuccess)
|
||||||
|
Loading…
Reference in New Issue
Block a user