void AvisynthSource::buildCommandLine(QStringList &cmdLine) { if(!m_options->customAvs2YUV().isEmpty()) { cmdLine << splitParams(m_options->customAvs2YUV()); } cmdLine << QDir::toNativeSeparators(x264_path2ansi(m_sourceFile, true)); cmdLine << "-"; }
void AvisynthSource::checkSourceProperties_init(QList<QRegExp*> &patterns, QStringList &cmdLine) { if(!m_options->customAvs2YUV().isEmpty()) { cmdLine << splitParams(m_options->customAvs2YUV()); } cmdLine << "-frames" << "1"; cmdLine << QDir::toNativeSeparators(x264_path2ansi(m_sourceFile, true)) << "NUL"; patterns << new QRegExp(": (\\d+)x(\\d+), (\\d+) fps, (\\d+) frames"); patterns << new QRegExp(": (\\d+)x(\\d+), (\\d+)/(\\d+) fps, (\\d+) frames"); }
void X264Encoder::buildCommandLine(QStringList &cmdLine, const bool &usePipe, const unsigned int &frames, const QString &indexFile, const int &pass, const QString &passLogFile) { double crf_int = 0.0, crf_frc = 0.0; switch(m_options->rcMode()) { case OptionsModel::RCMode_CQ: cmdLine << "--qp" << QString::number(qRound(m_options->quantizer())); break; case OptionsModel::RCMode_CRF: crf_frc = modf(m_options->quantizer(), &crf_int); cmdLine << "--crf" << QString("%1.%2").arg(QString::number(qRound(crf_int)), QString::number(qRound(crf_frc * 10.0))); break; case OptionsModel::RCMode_2Pass: case OptionsModel::RCMode_ABR: cmdLine << "--bitrate" << QString::number(m_options->bitrate()); break; default: THROW("Bad rate-control mode !!!"); } if((pass == 1) || (pass == 2)) { cmdLine << "--pass" << QString::number(pass); cmdLine << "--stats" << QDir::toNativeSeparators(passLogFile); } cmdLine << "--preset" << m_options->preset().toLower(); if(!m_options->tune().simplified().isEmpty()) { if(m_options->tune().simplified().compare(QString::fromLatin1(OptionsModel::TUNING_UNSPECIFIED), Qt::CaseInsensitive) != 0) { cmdLine << "--tune" << m_options->tune().simplified().toLower(); } } if(!m_options->profile().simplified().isEmpty()) { if(m_options->profile().simplified().compare(QString::fromLatin1(OptionsModel::PROFILE_UNRESTRICTED), Qt::CaseInsensitive) != 0) { cmdLine << "--profile" << m_options->profile().simplified().toLower(); } } if(!m_options->customEncParams().isEmpty()) { QStringList customArgs = splitParams(m_options->customEncParams(), m_sourceFile, m_outputFile); if(usePipe) { QStringList::iterator i = customArgs.begin(); while(i != customArgs.end()) { bool bModified = false; REMOVE_CUSTOM_ARG(customArgs, i, bModified, "--fps"); REMOVE_CUSTOM_ARG(customArgs, i, bModified, "--frames"); if(!bModified) i++; } } cmdLine.append(customArgs); } cmdLine << "--output" << QDir::toNativeSeparators(m_outputFile); if(usePipe) { if(frames < 1) THROW("Frames not set!"); cmdLine << "--frames" << QString::number(frames); cmdLine << "--demuxer" << "y4m"; cmdLine << "--stdin" << "y4m" << "-"; } else { cmdLine << "--index" << QDir::toNativeSeparators(indexFile); cmdLine << QDir::toNativeSeparators(m_sourceFile); } }