X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fthread_encode.cpp;h=e3f539ed13277468c5a33f81f924aae715848b8e;hb=d90f8d0508f1093ea1887e564da9b9c39e0548b8;hp=8f6eb02f4dd3212da93cf9340f53e9251d008dcb;hpb=d4d0882a1076e4510042999b39783512311b4091;p=x264-launcher%2Fx264-launcher.git diff --git a/src/thread_encode.cpp b/src/thread_encode.cpp index 8f6eb02..e3f539e 100644 --- a/src/thread_encode.cpp +++ b/src/thread_encode.cpp @@ -1,6 +1,6 @@ /////////////////////////////////////////////////////////////////////////////// // Simple x264 Launcher -// Copyright (C) 2004-2015 LoRd_MuldeR +// Copyright (C) 2004-2018 LoRd_MuldeR // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -26,16 +26,19 @@ #include "model_options.h" #include "model_preferences.h" #include "model_sysinfo.h" +#include "model_clipInfo.h" #include "job_object.h" -#include "binaries.h" #include "mediainfo.h" //Encoders #include "encoder_factory.h" //Source -#include "source_avisynth.h" -#include "source_vapoursynth.h" +#include "source_factory.h" + +//MUtils +#include +#include //Qt Framework #include @@ -133,15 +136,15 @@ EncodeThread::EncodeThread(const QString &sourceFileName, const QString &outputF switch(MediaInfo::analyze(m_sourceFileName)) { case MediaInfo::FILETYPE_AVISYNTH: - if(m_sysinfo->hasAVSSupport()) + if(m_sysinfo->hasAvisynth()) { - m_pipedSource = new AvisynthSource (m_jobObject, m_options, m_sysinfo, m_preferences, m_status, &m_abort, &m_pause, &m_semaphorePaused, m_sourceFileName); + m_pipedSource = SourceFactory::createSource(SourceFactory::SourceType_AVS, m_jobObject, m_options, m_sysinfo, m_preferences, m_status, &m_abort, &m_pause, &m_semaphorePaused, m_sourceFileName); } break; case MediaInfo::FILETYPE_VAPOURSYNTH: - if(m_sysinfo->hasVPSSupport()) + if(m_sysinfo->hasVapourSynth()) { - m_pipedSource = new VapoursynthSource(m_jobObject, m_options, m_sysinfo, m_preferences, m_status, &m_abort, &m_pause, &m_semaphorePaused, m_sourceFileName); + m_pipedSource = SourceFactory::createSource(SourceFactory::SourceType_VPS, m_jobObject, m_options, m_sysinfo, m_preferences, m_status, &m_abort, &m_pause, &m_semaphorePaused, m_sourceFileName); } break; } @@ -153,10 +156,10 @@ EncodeThread::EncodeThread(const QString &sourceFileName, const QString &outputF EncodeThread::~EncodeThread(void) { - X264_DELETE(m_encoder); - X264_DELETE(m_jobObject); - X264_DELETE(m_options); - X264_DELETE(m_pipedSource); + MUTILS_DELETE(m_encoder); + MUTILS_DELETE(m_jobObject); + MUTILS_DELETE(m_options); + MUTILS_DELETE(m_pipedSource); } /////////////////////////////////////////////////////////////////////////////// @@ -181,7 +184,7 @@ void EncodeThread::run(void) if(m_jobObject) { m_jobObject->terminateJob(42); - X264_DELETE(m_jobObject); + MUTILS_DELETE(m_jobObject); } } @@ -215,7 +218,7 @@ void EncodeThread::checkedRun(void) } catch(...) { - x264_fatal_exit(L"Unhandeled exception error in encode thread!"); + MUtils::OS::fatal_exit(L"Unhandeled exception error in encode thread!"); } } @@ -243,7 +246,7 @@ void EncodeThread::encode(void) // ----------------------------------------------------------------------------------- //Print some basic info - log(tr("Simple x264 Launcher (Build #%1), built %2\n").arg(QString::number(x264_version_build()), x264_version_date().toString(Qt::ISODate))); + log(tr("Simple x264 Launcher (Build #%1), built %2\n").arg(QString::number(x264_version_build()), MUtils::Version::app_build_date().toString(Qt::ISODate))); log(tr("Job started at %1, %2.\n").arg(QDate::currentDate().toString(Qt::ISODate), QTime::currentTime().toString( Qt::ISODate))); log(tr("Source file : %1").arg(QDir::toNativeSeparators(m_sourceFileName))); log(tr("Output file : %1").arg(QDir::toNativeSeparators(m_outputFileName))); @@ -251,21 +254,21 @@ void EncodeThread::encode(void) //Print system info log(tr("\n--- SYSTEMINFO ---\n")); log(tr("Binary Path : %1").arg(QDir::toNativeSeparators(m_sysinfo->getAppPath()))); - log(tr("Avisynth : %1").arg(m_sysinfo->hasAVSSupport() ? tr("Yes") : tr("No"))); - log(tr("VapourSynth : %1").arg(m_sysinfo->hasVPSSupport() ? QDir::toNativeSeparators(m_sysinfo->getVPSPath()) : tr("N/A"))); + log(tr("Avisynth : %1").arg(m_sysinfo->hasAvisynth() ? tr("Yes") : tr("No"))); + log(tr("VapourSynth : %1").arg(m_sysinfo->hasVapourSynth() ? tr("Yes") : tr("No"))); //Print encoder settings log(tr("\n--- SETTINGS ---\n")); log(tr("Encoder : %1").arg(m_encoder->getName())); log(tr("Source : %1").arg(m_pipedSource ? m_pipedSource->getName() : tr("Native"))); - log(tr("RC Mode : %1").arg(OptionsModel::rcMode2String(m_options->rcMode()))); + log(tr("RC Mode : %1").arg(m_encoder->getEncoderInfo().rcModeToString(m_options->rcMode()))); log(tr("Preset : %1").arg(m_options->preset())); log(tr("Tuning : %1").arg(m_options->tune())); log(tr("Profile : %1").arg(m_options->profile())); log(tr("Custom : %1").arg(m_options->customEncParams().isEmpty() ? tr("") : m_options->customEncParams())); bool ok = false; - unsigned int frames = 0; + ClipInfo clipInfo; // ----------------------------------------------------------------------------------- // Check Versions @@ -315,7 +318,7 @@ void EncodeThread::encode(void) if(m_pipedSource) { log(tr("\n--- GET SOURCE INFO ---\n")); - ok = m_pipedSource->checkSourceProperties(frames); + ok = m_pipedSource->checkSourceProperties(clipInfo); CHECK_STATUS(m_abort, ok); } @@ -324,22 +327,22 @@ void EncodeThread::encode(void) // ----------------------------------------------------------------------------------- //Run encoding passes - if(m_options->rcMode() == OptionsModel::RCMode_2Pass) + if(m_encoder->getEncoderInfo().rcModeToType(m_options->rcMode()) == AbstractEncoderInfo::RC_TYPE_MULTIPASS) { const QString passLogFile = getPasslogFile(m_outputFileName); log(tr("\n--- ENCODING PASS #1 ---\n")); - ok = m_encoder->runEncodingPass(m_pipedSource, m_outputFileName, frames, 1, passLogFile); + ok = m_encoder->runEncodingPass(m_pipedSource, m_outputFileName, clipInfo, 1, passLogFile); CHECK_STATUS(m_abort, ok); log(tr("\n--- ENCODING PASS #2 ---\n")); - ok = m_encoder->runEncodingPass(m_pipedSource, m_outputFileName, frames, 2, passLogFile); + ok = m_encoder->runEncodingPass(m_pipedSource, m_outputFileName, clipInfo, 2, passLogFile); CHECK_STATUS(m_abort, ok); } else { log(tr("\n--- ENCODING VIDEO ---\n")); - ok = m_encoder->runEncodingPass(m_pipedSource, m_outputFileName, frames); + ok = m_encoder->runEncodingPass(m_pipedSource, m_outputFileName, clipInfo); CHECK_STATUS(m_abort, ok); } @@ -360,7 +363,7 @@ void EncodeThread::encode(void) void EncodeThread::log(const QString &text) { - emit messageLogged(m_jobId, text); + emit messageLogged(m_jobId, QDateTime::currentMSecsSinceEpoch(), text); } void EncodeThread::setStatus(const JobStatus &newStatus)