Some improvements to version number handling.

This commit is contained in:
LoRd_MuldeR 2014-05-06 00:22:18 +02:00
parent 726d494ca1
commit 834905abf9
13 changed files with 84 additions and 65 deletions

View File

@ -204,7 +204,7 @@ void X264Encoder::checkVersion_init(QList<QRegExp*> &patterns, QStringList &cmdL
patterns << new QRegExp("\\bx264 (\\d)\\.(\\d+)\\.(\\d+)", Qt::CaseInsensitive); patterns << new QRegExp("\\bx264 (\\d)\\.(\\d+)\\.(\\d+)", Qt::CaseInsensitive);
} }
void X264Encoder::checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &coreVers, unsigned int &revision, bool &modified) void X264Encoder::checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &core, unsigned int &build, bool &modified)
{ {
int offset = -1; int offset = -1;
@ -215,8 +215,8 @@ void X264Encoder::checkVersion_parseLine(const QString &line, QList<QRegExp*> &p
unsigned int temp2 = patterns[0]->cap(3).toUInt(&ok2); unsigned int temp2 = patterns[0]->cap(3).toUInt(&ok2);
if(ok1 && ok2) if(ok1 && ok2)
{ {
coreVers = temp1; core = temp1;
revision = temp2; build = temp2;
} }
} }
else if((offset = patterns[1]->lastIndexIn(line)) >= 0) else if((offset = patterns[1]->lastIndexIn(line)) >= 0)
@ -226,8 +226,8 @@ void X264Encoder::checkVersion_parseLine(const QString &line, QList<QRegExp*> &p
unsigned int temp2 = patterns[1]->cap(3).toUInt(&ok2); unsigned int temp2 = patterns[1]->cap(3).toUInt(&ok2);
if(ok1 && ok2) if(ok1 && ok2)
{ {
coreVers = temp1; core = temp1;
revision = temp2; build = temp2;
} }
modified = true; modified = true;
} }
@ -240,21 +240,30 @@ void X264Encoder::checkVersion_parseLine(const QString &line, QList<QRegExp*> &p
QString X264Encoder::printVersion(const unsigned int &revision, const bool &modified) QString X264Encoder::printVersion(const unsigned int &revision, const bool &modified)
{ {
return tr("x264 revision: %1 (core #%2)").arg(QString::number(revision % REV_MULT), QString::number(revision / REV_MULT)).append(modified ? tr(" - with custom patches!") : QString()); unsigned int core, build;
splitRevision(revision, core, build);
QString versionStr = tr("x264 revision: %1 (core #%2)").arg(QString::number(build), QString::number(core));
if(modified)
{
versionStr.append(tr(" - with custom patches!"));
}
return versionStr;
} }
bool X264Encoder::isVersionSupported(const unsigned int &revision, const bool &modified) bool X264Encoder::isVersionSupported(const unsigned int &revision, const bool &modified)
{ {
const unsigned int ver = (revision / REV_MULT); unsigned int core, build;
const unsigned int rev = (revision % REV_MULT); splitRevision(revision, core, build);
if((rev % REV_MULT) < VERSION_X264_MINIMUM_REV) if(build < VERSION_X264_MINIMUM_REV)
{ {
log(tr("\nERROR: Your revision of x264 is too old! Minimum required revision is %1.").arg(QString::number(VERSION_X264_MINIMUM_REV))); log(tr("\nERROR: Your revision of x264 is too old! Minimum required revision is %1.").arg(QString::number(VERSION_X264_MINIMUM_REV)));
return false; return false;
} }
if(ver != VERSION_X264_CURRENT_API) if(core != VERSION_X264_CURRENT_API)
{ {
log(tr("\nWARNING: Your x264 binary uses an untested core (API) version, take care!")); log(tr("\nWARNING: Your x264 binary uses an untested core (API) version, take care!"));
log(tr("This application works best with x264 core (API) version %1. Newer versions may work or not.").arg(QString::number(VERSION_X264_CURRENT_API))); log(tr("This application works best with x264 core (API) version %1. Newer versions may work or not.").arg(QString::number(VERSION_X264_CURRENT_API)));

View File

@ -41,7 +41,7 @@ protected:
virtual void buildCommandLine(QStringList &cmdLine, const bool &usePipe, const unsigned int &frames, const QString &indexFile, const int &pass, const QString &passLogFile); virtual void buildCommandLine(QStringList &cmdLine, const bool &usePipe, const unsigned int &frames, const QString &indexFile, const int &pass, const QString &passLogFile);
virtual void checkVersion_init(QList<QRegExp*> &patterns, QStringList &cmdLine); virtual void checkVersion_init(QList<QRegExp*> &patterns, QStringList &cmdLine);
virtual void checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &coreVers, unsigned int &revision, bool &modified); virtual void checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &core, unsigned int &build, bool &modified);
virtual void runEncodingPass_init(QList<QRegExp*> &patterns); virtual void runEncodingPass_init(QList<QRegExp*> &patterns);
virtual void runEncodingPass_parseLine(const QString &line, QList<QRegExp*> &patterns, const int &pass); virtual void runEncodingPass_parseLine(const QString &line, QList<QRegExp*> &patterns, const int &pass);

View File

@ -185,7 +185,7 @@ void X265Encoder::checkVersion_init(QList<QRegExp*> &patterns, QStringList &cmdL
patterns << new QRegExp("\\bHEVC\\s+encoder\\s+version\\s+(\\d)\\.(\\d+)\\+(\\d+)-[a-f0-9]+\\b", Qt::CaseInsensitive); patterns << new QRegExp("\\bHEVC\\s+encoder\\s+version\\s+(\\d)\\.(\\d+)\\+(\\d+)-[a-f0-9]+\\b", Qt::CaseInsensitive);
} }
void X265Encoder::checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &coreVers, unsigned int &revision, bool &modified) void X265Encoder::checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &core, unsigned int &build, bool &modified)
{ {
int offset = -1; int offset = -1;
@ -198,9 +198,9 @@ void X265Encoder::checkVersion_parseLine(const QString &line, QList<QRegExp*> &p
temp[2] = patterns[0]->cap(3).toUInt(&ok[2]); temp[2] = patterns[0]->cap(3).toUInt(&ok[2]);
if(ok[0] && ok[1]) if(ok[0] && ok[1])
{ {
coreVers = (10 * temp[0]) + temp[1]; core = (10 * temp[0]) + temp[1];
} }
if(ok[2]) revision = temp[2]; if(ok[2]) build = temp[2];
} }
if(!line.isEmpty()) if(!line.isEmpty())
@ -211,26 +211,26 @@ void X265Encoder::checkVersion_parseLine(const QString &line, QList<QRegExp*> &p
QString X265Encoder::printVersion(const unsigned int &revision, const bool &modified) QString X265Encoder::printVersion(const unsigned int &revision, const bool &modified)
{ {
const unsigned int core = revision / REV_MULT; unsigned int core, build;
const unsigned int plus = revision % REV_MULT; splitRevision(revision, core, build);
return tr("x265 version: %1.%2+%3").arg(QString::number(core / 10), QString::number(core % 10), QString::number(plus)); return tr("x265 version: %1.%2+%3").arg(QString::number(core / 10), QString::number(core % 10), QString::number(build));
} }
bool X265Encoder::isVersionSupported(const unsigned int &revision, const bool &modified) bool X265Encoder::isVersionSupported(const unsigned int &revision, const bool &modified)
{ {
const unsigned int ver = (revision / REV_MULT); unsigned int core, build;
const unsigned int rev = (revision % REV_MULT); splitRevision(revision, core, build);
if((ver < VERSION_X265_MINIMUM_VER) || ((ver == VERSION_X265_MINIMUM_VER) && (rev < VERSION_X265_MINIMUM_REV))) if((core < VERSION_X265_MINIMUM_VER) || ((core == VERSION_X265_MINIMUM_VER) && (build < VERSION_X265_MINIMUM_REV)))
{ {
log(tr("\nERROR: Your version of x265 is too old! (Minimum required revision is 0.%1+%2)").arg(QString::number(VERSION_X265_MINIMUM_VER), QString::number(VERSION_X265_MINIMUM_REV))); log(tr("\nERROR: Your version of x265 is too old! (Minimum required revision is 0.%1+%2)").arg(QString::number(VERSION_X265_MINIMUM_VER), QString::number(VERSION_X265_MINIMUM_REV)));
return false; return false;
} }
else if(ver > VERSION_X265_MINIMUM_VER) else if(core > VERSION_X265_MINIMUM_VER)
{ {
log(tr("\nWARNING: Your version of x265 is newer than the latest tested version, take care!")); log(tr("\nWARNING: Your version of x265 is newer than the latest tested version, take care!"));
log(tr("This application works best with x265 version %1. Newer versions may work or not.").arg(QString::number(VERSION_X265_MINIMUM_VER))); log(tr("This application works best with x265 version %1.%2. Newer versions may work or not.").arg(QString::number(VERSION_X265_MINIMUM_VER / 10), QString::number(VERSION_X265_MINIMUM_VER % 10)));
} }
return true; return true;

View File

@ -41,7 +41,7 @@ protected:
virtual void buildCommandLine(QStringList &cmdLine, const bool &usePipe, const unsigned int &frames, const QString &indexFile, const int &pass, const QString &passLogFile); virtual void buildCommandLine(QStringList &cmdLine, const bool &usePipe, const unsigned int &frames, const QString &indexFile, const int &pass, const QString &passLogFile);
virtual void checkVersion_init(QList<QRegExp*> &patterns, QStringList &cmdLine); virtual void checkVersion_init(QList<QRegExp*> &patterns, QStringList &cmdLine);
virtual void checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &coreVers, unsigned int &revision, bool &modified); virtual void checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &core, unsigned int &build, bool &modified);
virtual void runEncodingPass_init(QList<QRegExp*> &patterns); virtual void runEncodingPass_init(QList<QRegExp*> &patterns);
virtual void runEncodingPass_parseLine(const QString &line, QList<QRegExp*> &patterns, const int &pass); virtual void runEncodingPass_parseLine(const QString &line, QList<QRegExp*> &patterns, const int &pass);

View File

@ -76,7 +76,7 @@ void AvisynthSource::checkVersion_init(QList<QRegExp*> &patterns, QStringList &c
patterns << new QRegExp("\\bAvs2YUV (\\d+).(\\d+)bm(\\d)\\b", Qt::CaseInsensitive); patterns << new QRegExp("\\bAvs2YUV (\\d+).(\\d+)bm(\\d)\\b", Qt::CaseInsensitive);
} }
void AvisynthSource::checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &coreVers, unsigned int &revision, bool &modified) void AvisynthSource::checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &core, unsigned int &build, bool &modified)
{ {
int offset = -1; int offset = -1;
@ -87,8 +87,8 @@ void AvisynthSource::checkVersion_parseLine(const QString &line, QList<QRegExp*>
unsigned int temp2 = patterns[0]->cap(2).toUInt(&ok2); unsigned int temp2 = patterns[0]->cap(2).toUInt(&ok2);
if(ok1 && ok2) if(ok1 && ok2)
{ {
coreVers = temp1; core = temp1;
revision = temp2; build = temp2;
} }
log(line); log(line);
} }
@ -100,8 +100,8 @@ void AvisynthSource::checkVersion_parseLine(const QString &line, QList<QRegExp*>
unsigned int temp3 = patterns[1]->cap(3).toUInt(&ok3); unsigned int temp3 = patterns[1]->cap(3).toUInt(&ok3);
if(ok1 && ok2 && ok3) if(ok1 && ok2 && ok3)
{ {
coreVers = temp1; core = temp1;
revision = (temp2 * 10) + (temp3 % 10); build = (temp2 * 10) + (temp3 % 10);
} }
modified = true; modified = true;
log(line); log(line);
@ -115,12 +115,18 @@ bool AvisynthSource::checkVersion_succeeded(const int &exitCode)
QString AvisynthSource::printVersion(const unsigned int &revision, const bool &modified) QString AvisynthSource::printVersion(const unsigned int &revision, const bool &modified)
{ {
return tr("Avs2YUV version: %1.%2.%3").arg(QString::number(revision / REV_MULT), QString::number((revision % REV_MULT) / 10),QString::number((revision % REV_MULT) % 10)); unsigned int core, build;
splitRevision(revision, core, build);
return tr("Avs2YUV version: %1.%2.%3").arg(QString::number(core), QString::number(build / 10),QString::number(build % 10));
} }
bool AvisynthSource::isVersionSupported(const unsigned int &revision, const bool &modified) bool AvisynthSource::isVersionSupported(const unsigned int &revision, const bool &modified)
{ {
if((revision != UINT_MAX) && ((revision % REV_MULT) < VER_X264_AVS2YUV_VER)) unsigned int core, build;
splitRevision(revision, core, build);
if((revision != UINT_MAX) && (build < VER_X264_AVS2YUV_VER))
{ {
log(tr("\nERROR: Your version of avs2yuv is unsupported (required version: v0.24 BugMaster's mod 2)")); log(tr("\nERROR: Your version of avs2yuv is unsupported (required version: v0.24 BugMaster's mod 2)"));
log(tr("You can find the required version at: http://komisar.gin.by/tools/avs2yuv/")); log(tr("You can find the required version at: http://komisar.gin.by/tools/avs2yuv/"));

View File

@ -39,7 +39,7 @@ public:
protected: protected:
virtual void checkVersion_init(QList<QRegExp*> &patterns, QStringList &cmdLine); virtual void checkVersion_init(QList<QRegExp*> &patterns, QStringList &cmdLine);
virtual void checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &coreVers, unsigned int &revision, bool &modified); virtual void checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &core, unsigned int &build, bool &modified);
virtual bool checkVersion_succeeded(const int &exitCode); virtual bool checkVersion_succeeded(const int &exitCode);
virtual void checkSourceProperties_init(QList<QRegExp*> &patterns, QStringList &cmdLine); virtual void checkSourceProperties_init(QList<QRegExp*> &patterns, QStringList &cmdLine);

View File

@ -74,7 +74,7 @@ void VapoursynthSource::checkVersion_init(QList<QRegExp*> &patterns, QStringList
patterns << new QRegExp("\\bAPI\\s+r(\\d+)\\b", Qt::CaseInsensitive); patterns << new QRegExp("\\bAPI\\s+r(\\d+)\\b", Qt::CaseInsensitive);
} }
void VapoursynthSource::checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &coreVers, unsigned int &revision, bool &modified) void VapoursynthSource::checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &core, unsigned int &build, bool &modified)
{ {
int offset = -1; int offset = -1;
@ -82,13 +82,13 @@ void VapoursynthSource::checkVersion_parseLine(const QString &line, QList<QRegEx
{ {
bool ok = false; bool ok = false;
unsigned int temp = patterns[1]->cap(1).toUInt(&ok); unsigned int temp = patterns[1]->cap(1).toUInt(&ok);
if(ok) revision = temp; if(ok) build = temp;
} }
else if((offset = patterns[2]->lastIndexIn(line)) >= 0) else if((offset = patterns[2]->lastIndexIn(line)) >= 0)
{ {
bool ok = false; bool ok = false;
unsigned int temp = patterns[2]->cap(1).toUInt(&ok); unsigned int temp = patterns[2]->cap(1).toUInt(&ok);
if(ok) coreVers = temp; if(ok) core = temp;
} }
if(!line.isEmpty()) if(!line.isEmpty())
@ -99,12 +99,18 @@ void VapoursynthSource::checkVersion_parseLine(const QString &line, QList<QRegEx
QString VapoursynthSource::printVersion(const unsigned int &revision, const bool &modified) QString VapoursynthSource::printVersion(const unsigned int &revision, const bool &modified)
{ {
return tr("\nVapourSynth version: r%1 (API r%2)").arg(QString::number(revision % REV_MULT), QString::number(revision / REV_MULT)); unsigned int core, build;
splitRevision(revision, core, build);
return tr("\nVapourSynth version: r%1 (API r%2)").arg(QString::number(build), QString::number(core));
} }
bool VapoursynthSource::isVersionSupported(const unsigned int &revision, const bool &modified) bool VapoursynthSource::isVersionSupported(const unsigned int &revision, const bool &modified)
{ {
if((revision % REV_MULT) < VER_X264_VSPIPE_VER) unsigned int core, build;
splitRevision(revision, core, build);
if(build < VER_X264_VSPIPE_VER)
{ {
log(tr("\nERROR: Your version of VapourSynth is unsupported (requires version r%1 or newer").arg(QString::number(VER_X264_VSPIPE_VER))); log(tr("\nERROR: Your version of VapourSynth is unsupported (requires version r%1 or newer").arg(QString::number(VER_X264_VSPIPE_VER)));
log(tr("You can find the latest VapourSynth version at: http://www.vapoursynth.com/")); log(tr("You can find the latest VapourSynth version at: http://www.vapoursynth.com/"));

View File

@ -39,7 +39,7 @@ public:
protected: protected:
virtual void checkVersion_init(QList<QRegExp*> &patterns, QStringList &cmdLine); virtual void checkVersion_init(QList<QRegExp*> &patterns, QStringList &cmdLine);
virtual void checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &coreVers, unsigned int &revision, bool &modified); virtual void checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &core, unsigned int &build, bool &modified);
virtual void checkSourceProperties_init(QList<QRegExp*> &patterns, QStringList &cmdLine); virtual void checkSourceProperties_init(QList<QRegExp*> &patterns, QStringList &cmdLine);
virtual void checkSourceProperties_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &frames, unsigned int &fSizeW, unsigned int &fSizeH, unsigned int &fpsNom, unsigned int &fpsDen); virtual void checkSourceProperties_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &frames, unsigned int &fSizeW, unsigned int &fSizeH, unsigned int &fpsNom, unsigned int &fpsDen);

View File

@ -31,8 +31,6 @@
#include "global.h" #include "global.h"
static const unsigned int VAPOURSYNTH_VERSION_MIN = 20;
QMutex VapourSynthCheckThread::m_vpsLock; QMutex VapourSynthCheckThread::m_vpsLock;
QFile *VapourSynthCheckThread::m_vpsExePath = NULL; QFile *VapourSynthCheckThread::m_vpsExePath = NULL;
QFile *VapourSynthCheckThread::m_vpsDllPath = NULL; QFile *VapourSynthCheckThread::m_vpsDllPath = NULL;
@ -264,7 +262,7 @@ bool VapourSynthCheckThread::detectVapourSynthPath3(QString &path)
if(vapoursynthComplete && m_vpsExePath) if(vapoursynthComplete && m_vpsExePath)
{ {
qDebug("VapourSynth detection is running, please stand by..."); qDebug("VapourSynth detection is running, please stand by...");
success = checkVapourSynthVersion(m_vpsExePath->fileName()); success = checkVapourSynth(m_vpsExePath->fileName());
} }
//Return VapourSynth path //Return VapourSynth path
@ -276,7 +274,7 @@ bool VapourSynthCheckThread::detectVapourSynthPath3(QString &path)
return success; return success;
} }
bool VapourSynthCheckThread::checkVapourSynthVersion(const QString vspipePath) bool VapourSynthCheckThread::checkVapourSynth(const QString vspipePath)
{ {
QProcess process; QProcess process;
QStringList output; QStringList output;
@ -335,36 +333,23 @@ bool VapourSynthCheckThread::checkVapourSynthVersion(const QString vspipePath)
} }
//Init regular expressions //Init regular expressions
unsigned int vapursynthVersion = 0;
bool vapoursynthLogo = false;
QRegExp vpsLogo("VapourSynth\\s+Video\\s+Processing\\s+Library"); QRegExp vpsLogo("VapourSynth\\s+Video\\s+Processing\\s+Library");
QRegExp vpsCore("Core\\s+r(\\d+)");
//Check for version info //Check for version info
bool vapoursynthLogo = false;
for(QStringList::ConstIterator iter = output.constBegin(); iter != output.constEnd(); iter++) for(QStringList::ConstIterator iter = output.constBegin(); iter != output.constEnd(); iter++)
{ {
if(vpsLogo.lastIndexIn(*iter) >= 0) if(vpsLogo.lastIndexIn(*iter) >= 0)
{ {
vapoursynthLogo = true; vapoursynthLogo = true;
continue; break;
}
if(vapoursynthLogo && (vpsCore.lastIndexIn(*iter) >= 0))
{
bool ok = false;
const unsigned int temp = vpsCore.cap(1).toUInt(&ok);
if(ok) vapursynthVersion = temp;
} }
} }
//Minimum required version found? //Minimum required version found?
if(vapoursynthLogo && (vapursynthVersion > 0)) if(vapoursynthLogo)
{ {
qDebug("VapourSynth version \"Core r%u\" detected.", vapursynthVersion); qDebug("VapourSynth was detected successfully.");
if(vapursynthVersion < VAPOURSYNTH_VERSION_MIN)
{
qWarning("VapourSynth version is too old -> disable Vapousynth support!");
return false;
}
return true; return true;
} }

View File

@ -65,5 +65,5 @@ private:
static bool detectVapourSynthPath3(QString &path); static bool detectVapourSynthPath3(QString &path);
//Internal functions //Internal functions
static bool checkVapourSynthVersion(const QString vspipePath); static bool checkVapourSynth(const QString vspipePath);
}; };

View File

@ -62,7 +62,7 @@ unsigned int AbstractTool::checkVersion(bool &modified)
if(m_preferences->getSkipVersionTest()) if(m_preferences->getSkipVersionTest())
{ {
log("Warning: Skipping the version check this time!"); log("Warning: Skipping the version check this time!");
return (999 * REV_MULT) + (REV_MULT-1); return makeRevision(9999, 9999);
} }
QProcess process; QProcess process;
@ -140,7 +140,7 @@ unsigned int AbstractTool::checkVersion(bool &modified)
return UINT_MAX; return UINT_MAX;
} }
return (coreVers * REV_MULT) + (revision % REV_MULT); return makeRevision(coreVers, revision);
} }
bool AbstractTool::checkVersion_succeeded(const int &exitCode) bool AbstractTool::checkVersion_succeeded(const int &exitCode)
@ -223,3 +223,14 @@ QString AbstractTool::stringToHash(const QString &string)
return QString::fromLatin1(result.toHex().constData()); return QString::fromLatin1(result.toHex().constData());
} }
unsigned int AbstractTool::makeRevision(const unsigned int &core, const unsigned int &build)
{
return ((core & 0x0000FFFF) << 16) | (build & 0x0000FFFF);
}
void AbstractTool::splitRevision(const unsigned int &revision, unsigned int &core, unsigned int &build)
{
core = (revision & 0xFFFF0000) >> 16;
build = (revision & 0x0000FFFF);
}

View File

@ -51,7 +51,7 @@ public:
virtual bool isVersionSupported(const unsigned int &revision, const bool &modified) = 0; virtual bool isVersionSupported(const unsigned int &revision, const bool &modified) = 0;
virtual QString printVersion(const unsigned int &revision, const bool &modified) = 0; virtual QString printVersion(const unsigned int &revision, const bool &modified) = 0;
static const unsigned int REV_MULT = 10000; //static const unsigned int REV_MULT = 10000;
signals: signals:
void statusChanged(const JobStatus &newStatus); void statusChanged(const JobStatus &newStatus);
@ -67,7 +67,7 @@ protected:
virtual const QString &getBinaryPath(void) = 0; virtual const QString &getBinaryPath(void) = 0;
virtual void checkVersion_init(QList<QRegExp*> &patterns, QStringList &cmdLine) = 0; virtual void checkVersion_init(QList<QRegExp*> &patterns, QStringList &cmdLine) = 0;
virtual void checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &coreVers, unsigned int &revision, bool &modified) = 0; virtual void checkVersion_parseLine(const QString &line, QList<QRegExp*> &patterns, unsigned int &core, unsigned int &build, bool &modified) = 0;
virtual bool checkVersion_succeeded(const int &exitCode); virtual bool checkVersion_succeeded(const int &exitCode);
void log(const QString &text) { emit messageLogged(text); } void log(const QString &text) { emit messageLogged(text); }
@ -88,7 +88,9 @@ protected:
static QString commandline2string(const QString &program, const QStringList &arguments); static QString commandline2string(const QString &program, const QStringList &arguments);
static QString stringToHash(const QString &string); static QString stringToHash(const QString &string);
static unsigned int makeRevision(const unsigned int &core, const unsigned int &build);
static void splitRevision(const unsigned int &revision, unsigned int &core, unsigned int &build);
static QMutex s_mutexStartProcess; static QMutex s_mutexStartProcess;
}; };

View File

@ -26,7 +26,7 @@
#define VER_X264_MAJOR 2 #define VER_X264_MAJOR 2
#define VER_X264_MINOR 3 #define VER_X264_MINOR 3
#define VER_X264_PATCH 9 #define VER_X264_PATCH 9
#define VER_X264_BUILD 865 #define VER_X264_BUILD 866
#define VER_X264_PORTABLE_EDITION (0) #define VER_X264_PORTABLE_EDITION (0)