QString AvisynthSource::printVersion(const unsigned int &revision, const bool &modified)
{
	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 VapoursynthSource::isVersionSupported(const unsigned int &revision, const bool &modified)
{
	unsigned int 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)
		{
			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/"));
		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;
}
QString VapoursynthSource::printVersion(const unsigned int &revision, const bool &modified)
{
	unsigned int core, build;
	splitRevision(revision, core, build);

	return tr("\nVapourSynth version: r%1 (API r%2)").arg(QString::number(build), QString::number(core));
}
QString X264Encoder::printVersion(const unsigned int &revision, const bool &modified)
{
	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 AvisynthSource::isVersionSupported(const unsigned int &revision, const bool &modified)
{
	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("You can find the required version at: http://komisar.gin.by/tools/avs2yuv/"));
		return false;
	}
	return true;
}
bool X264Encoder::isVersionSupported(const unsigned int &revision, const bool &modified)
{
	unsigned int core, build;
	splitRevision(revision, core, build);

	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)));
		return false;
	}
	
	if(core != VERSION_X264_CURRENT_API)
	{
		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)));
	}

	return true;
}