Added support for VapourSynth r24+. Minimum required version is now r24!
This commit is contained in:
parent
ee5c384578
commit
6d7a0bc4ce
@ -31,7 +31,8 @@
|
|||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
|
|
||||||
static const unsigned int VER_X264_VSPIPE_VER = 22;
|
static const unsigned int VER_X264_VSPIPE_API = 3;
|
||||||
|
static const unsigned int VER_X264_VSPIPE_VER = 24;
|
||||||
|
|
||||||
VapoursynthSource::VapoursynthSource(JobObject *jobObject, const OptionsModel *options, const SysinfoModel *const sysinfo, const PreferencesModel *const preferences, JobStatus &jobStatus, volatile bool *abort, volatile bool *pause, QSemaphore *semaphorePause, const QString &sourceFile)
|
VapoursynthSource::VapoursynthSource(JobObject *jobObject, const OptionsModel *options, const SysinfoModel *const sysinfo, const PreferencesModel *const preferences, JobStatus &jobStatus, volatile bool *abort, volatile bool *pause, QSemaphore *semaphorePause, const QString &sourceFile)
|
||||||
:
|
:
|
||||||
@ -68,7 +69,7 @@ bool VapoursynthSource::isSourceAvailable()
|
|||||||
|
|
||||||
void VapoursynthSource::checkVersion_init(QList<QRegExp*> &patterns, QStringList &cmdLine)
|
void VapoursynthSource::checkVersion_init(QList<QRegExp*> &patterns, QStringList &cmdLine)
|
||||||
{
|
{
|
||||||
cmdLine << "-version";
|
cmdLine << "--version";
|
||||||
patterns << new QRegExp("\\bVapourSynth\\b", Qt::CaseInsensitive);
|
patterns << new QRegExp("\\bVapourSynth\\b", Qt::CaseInsensitive);
|
||||||
patterns << new QRegExp("\\bCore\\s+r(\\d+)\\b", Qt::CaseInsensitive);
|
patterns << new QRegExp("\\bCore\\s+r(\\d+)\\b", Qt::CaseInsensitive);
|
||||||
patterns << new QRegExp("\\bAPI\\s+r(\\d+)\\b", Qt::CaseInsensitive);
|
patterns << new QRegExp("\\bAPI\\s+r(\\d+)\\b", Qt::CaseInsensitive);
|
||||||
@ -110,12 +111,26 @@ bool VapoursynthSource::isVersionSupported(const unsigned int &revision, const b
|
|||||||
unsigned int core, build;
|
unsigned int core, build;
|
||||||
splitRevision(revision, core, build);
|
splitRevision(revision, core, build);
|
||||||
|
|
||||||
|
if((build < VER_X264_VSPIPE_VER) || (core < VER_X264_VSPIPE_API))
|
||||||
|
{
|
||||||
|
|
||||||
|
if(core < VER_X264_VSPIPE_API)
|
||||||
|
{
|
||||||
|
log(tr("\nERROR: Your version of VapourSynth is unsupported! (requires API r%1 or newer)").arg(QString::number(VER_X264_VSPIPE_API)));
|
||||||
|
}
|
||||||
if(build < VER_X264_VSPIPE_VER)
|
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/"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(core != VER_X264_VSPIPE_API)
|
||||||
|
{
|
||||||
|
log(tr("\nWARNING: Running with an unknown VapourSynth API version, problem may appear! (this application works best with API r%1)").arg(QString::number(VER_X264_VSPIPE_API)));
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,8 +140,9 @@ bool VapoursynthSource::isVersionSupported(const unsigned int &revision, const b
|
|||||||
|
|
||||||
void VapoursynthSource::checkSourceProperties_init(QList<QRegExp*> &patterns, QStringList &cmdLine)
|
void VapoursynthSource::checkSourceProperties_init(QList<QRegExp*> &patterns, QStringList &cmdLine)
|
||||||
{
|
{
|
||||||
|
cmdLine << "--info";
|
||||||
cmdLine << QDir::toNativeSeparators(x264_path2ansi(m_sourceFile, true));
|
cmdLine << QDir::toNativeSeparators(x264_path2ansi(m_sourceFile, true));
|
||||||
cmdLine << "-" << "-info";
|
cmdLine << "-";
|
||||||
|
|
||||||
patterns << new QRegExp("\\bFrames:\\s+(\\d+)\\b");
|
patterns << new QRegExp("\\bFrames:\\s+(\\d+)\\b");
|
||||||
patterns << new QRegExp("\\bWidth:\\s+(\\d+)\\b");
|
patterns << new QRegExp("\\bWidth:\\s+(\\d+)\\b");
|
||||||
@ -187,8 +203,9 @@ void VapoursynthSource::checkSourceProperties_parseLine(const QString &line, QLi
|
|||||||
|
|
||||||
void VapoursynthSource::buildCommandLine(QStringList &cmdLine)
|
void VapoursynthSource::buildCommandLine(QStringList &cmdLine)
|
||||||
{
|
{
|
||||||
|
cmdLine << "--y4m";
|
||||||
cmdLine << QDir::toNativeSeparators(x264_path2ansi(m_sourceFile, true));
|
cmdLine << QDir::toNativeSeparators(x264_path2ansi(m_sourceFile, true));
|
||||||
cmdLine << "-" << "-y4m";
|
cmdLine << "-";
|
||||||
}
|
}
|
||||||
|
|
||||||
void VapoursynthSource::flushProcess(QProcess &processInput)
|
void VapoursynthSource::flushProcess(QProcess &processInput)
|
||||||
|
@ -285,7 +285,7 @@ bool VapourSynthCheckThread::checkVapourSynth(const QString vspipePath)
|
|||||||
process.setReadChannel(QProcess::StandardOutput);
|
process.setReadChannel(QProcess::StandardOutput);
|
||||||
|
|
||||||
//Try to start VSPIPE.EXE
|
//Try to start VSPIPE.EXE
|
||||||
process.start(vspipePath, QStringList() << "-version");
|
process.start(vspipePath, QStringList() << "--version");
|
||||||
if(!process.waitForStarted())
|
if(!process.waitForStarted())
|
||||||
{
|
{
|
||||||
qWarning("Failed to launch VSPIPE.EXE -> %s", process.errorString().toUtf8().constData());
|
qWarning("Failed to launch VSPIPE.EXE -> %s", process.errorString().toUtf8().constData());
|
||||||
|
@ -949,8 +949,8 @@ void MainWindow::init(void)
|
|||||||
if(!m_preferences->getDisableWarnings())
|
if(!m_preferences->getDisableWarnings())
|
||||||
{
|
{
|
||||||
QString text = tr("It appears that VapourSynth is <b>not</b> currently installed on your computer.<br>Therefore VapourSynth (.vpy) input will <b>not</b> be working at all!").append("<br><br>");
|
QString text = tr("It appears that VapourSynth is <b>not</b> currently installed on your computer.<br>Therefore VapourSynth (.vpy) input will <b>not</b> be working at all!").append("<br><br>");
|
||||||
text += tr("Please download and install VapourSynth for Windows (R20 or later):").append("<br>").append(LINK(vsynth_url)).append("<br><br>");
|
text += tr("Please download and install VapourSynth for Windows (R24 or later):").append("<br>").append(LINK(vsynth_url)).append("<br><br>");
|
||||||
text += tr("Note that Python v3.x is a prerequisite for installing VapourSynth:").append("<br>").append(LINK(python_url)).append("<br>");
|
text += tr("Note that Python v3.4 is a prerequisite for installing VapourSynth:").append("<br>").append(LINK(python_url)).append("<br>");
|
||||||
const int val = QMessageBox::warning(this, tr("VapourSynth Missing"), QString("<nobr>%1</nobr>").arg(text).replace("-", "−"), tr("Close"), tr("Disable this Warning"));
|
const int val = QMessageBox::warning(this, tr("VapourSynth Missing"), QString("<nobr>%1</nobr>").arg(text).replace("-", "−"), tr("Close"), tr("Disable this Warning"));
|
||||||
if(val == 1)
|
if(val == 1)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user