When job's are added via "--add-job", the job will now be either started immediately or enqueued, depending on the preferences. Before those job's were *always* started immediately. Furthermore, two [four] new command-line options can be used to control the startup behavior: The options "--[no-]force-start" and "--[no-]force-enqueue" will enabled [disable] that the *next* job added via "--add-job" is started immediately or appended to the queue, respectively. Neither of those is enabled, default behavior applies.
This commit is contained in:
parent
b5ee60f8d9
commit
c899d1aa3f
32
ReadMe.txt
32
ReadMe.txt
@ -230,22 +230,30 @@ in older versions of the Simple x264 Launcher is *NOT* needed anymore!!
|
||||
13. Command-line Syntax
|
||||
-----------------------
|
||||
|
||||
PLEASE NOTE: These are parameters you can pass to Simple x264 Launcher, they
|
||||
can **not** be passed to x264 (or avs2yuv) itself as "custom" parameters !!!
|
||||
|
||||
The following command-line switches are available:
|
||||
|
||||
--add-file <file> ............... Create a new job via "Add Job" dialog
|
||||
--add-job <src> <dest> <tpl> .... Create a new job in a non-interactive way
|
||||
--console ....................... Show the "debug" console
|
||||
--no-console .................... Don't show the "debug" console
|
||||
--no-style ...................... Don't use the Qt "Plastique" style
|
||||
--skip-avisynth-check ........... Skip Avisynth check, disable .AVS input
|
||||
--skip-vapoursynth-check ........ Skip VapourSynth check, disables .VPY input
|
||||
--force-cpu-no-64bit ............ Forcefully disable 64-Bit support
|
||||
--no-deadlock-detection ......... Don't abort processes on timeout/deadlock
|
||||
--add-file <file> ............... Create a new job via "Add Job" dialog
|
||||
--add-job <src> <dest> <tpl> .... Create a new job in a non-interactive way
|
||||
--[no-]force-start .............. Next job will [not] be started immediately
|
||||
--[no-]force-enqueue ............ Next job will [not] be appended to queue
|
||||
--skip-avisynth-check ........... Skip Avisynth check, disable .AVS input
|
||||
--skip-vapoursynth-check ........ Skip VapourSynth check, disables .VPY input
|
||||
--force-cpu-no-64bit ............ Forcefully disable 64-Bit support
|
||||
--no-deadlock-detection ......... Don't abort processes on timeout/deadlock
|
||||
--[no-]console .................. Do [not] show the "debug" console window
|
||||
--no-style ...................... Don't use the Qt "Plastique" UI-style
|
||||
|
||||
HINT: Pass "-" as the <tpl> parameter to encode with *default* template.
|
||||
Some details on the "--add-job" command-line switch:
|
||||
|
||||
PLEASE NOTE: These are parameters you can pass to Simple x264 Launcher, they
|
||||
can *not* be passed to x264 itself as "custom" parameters !!!
|
||||
<src> .... Specifies the source media file or Avisynth/VapourSynth script
|
||||
<dest> ... Specifies the output H.264/MKV/MP4 file to be written
|
||||
<tpl> .... Specifies the template name to be used, can be "-" to use defaults
|
||||
|
||||
Use "--[no-]force-start" or "--[no-]force-enqueue" to tweak startup behavior.
|
||||
If neither of those switches is used, the default startup behavior applies.
|
||||
|
||||
|
||||
14. Help & Support
|
||||
|
31
src/main.cpp
31
src/main.cpp
@ -137,6 +137,7 @@ static int x264_main(int argc, char* argv[])
|
||||
void handleMultipleInstances(QStringList args, IPC *ipc)
|
||||
{
|
||||
bool commandSent = false;
|
||||
unsigned int flags = 0;
|
||||
|
||||
//Skip the program file name
|
||||
args.takeFirst();
|
||||
@ -165,12 +166,9 @@ void handleMultipleInstances(QStringList args, IPC *ipc)
|
||||
commandSent = true;
|
||||
if(args.size() >= 3)
|
||||
{
|
||||
QStringList lst;
|
||||
for(int i = 0; i < 3; i++)
|
||||
{
|
||||
lst << args.takeFirst();
|
||||
}
|
||||
if(!ipc->sendAsync(IPC_OPCODE_ADD_JOB, lst))
|
||||
const QStringList list = args.mid(0, 3);
|
||||
args.erase(args.begin(), args.begin() + 3);
|
||||
if(!ipc->sendAsync(IPC_OPCODE_ADD_JOB, list, flags))
|
||||
{
|
||||
break;
|
||||
}
|
||||
@ -181,13 +179,22 @@ void handleMultipleInstances(QStringList args, IPC *ipc)
|
||||
args.clear();
|
||||
}
|
||||
}
|
||||
else
|
||||
else if(X264_STRCMP(current, "--force-start") || X264_STRCMP(current, "--no-force-start"))
|
||||
{
|
||||
if(!current.startsWith("--"))
|
||||
{
|
||||
qWarning("Unknown argument: %s", current.toUtf8().constData());
|
||||
break;
|
||||
}
|
||||
const bool bEnabled = X264_STRCMP(current, "--force-start");
|
||||
flags = bEnabled ? (flags | IPC_FLAG_FORCE_START) : (flags & (~IPC_FLAG_FORCE_START));
|
||||
if(bEnabled) flags = flags & (~IPC_FLAG_FORCE_ENQUEUE);
|
||||
}
|
||||
else if(X264_STRCMP(current, "--force-enqueue") || X264_STRCMP(current, "--no-force-enqueue"))
|
||||
{
|
||||
const bool bEnabled = X264_STRCMP(current, "--force-enqueue");
|
||||
flags = bEnabled ? (flags | IPC_FLAG_FORCE_ENQUEUE) : (flags & (~IPC_FLAG_FORCE_ENQUEUE));
|
||||
if(bEnabled) flags = flags & (~IPC_FLAG_FORCE_START);
|
||||
}
|
||||
else if(!current.startsWith("--"))
|
||||
{
|
||||
qWarning("Unknown argument: %s", current.toUtf8().constData());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
#define VER_X264_MAJOR 2
|
||||
#define VER_X264_MINOR 3
|
||||
#define VER_X264_PATCH 0
|
||||
#define VER_X264_BUILD 738
|
||||
#define VER_X264_BUILD 740
|
||||
|
||||
#define VER_X264_MINIMUM_REV 2380
|
||||
#define VER_X264_CURRENT_API 142
|
||||
|
@ -62,8 +62,8 @@ const char *tpl_last = "<LAST_USED>";
|
||||
#define SET_FONT_BOLD(WIDGET,BOLD) do { QFont _font = WIDGET->font(); _font.setBold(BOLD); WIDGET->setFont(_font); } while(0)
|
||||
#define SET_TEXT_COLOR(WIDGET,COLOR) do { QPalette _palette = WIDGET->palette(); _palette.setColor(QPalette::WindowText, (COLOR)); _palette.setColor(QPalette::Text, (COLOR)); WIDGET->setPalette(_palette); } while(0)
|
||||
#define LINK(URL) "<a href=\"" URL "\">" URL "</a>"
|
||||
#define ENSURE_APP_IS_IDLE() do { if(m_status != STATUS_IDLE) { qWarning("Cannot perfrom this action at this time!"); return; } } while(0)
|
||||
#define INIT_ERROR_EXIT() do { m_status = STATUS_EXITTING; close(); qApp->exit(-1); return; } while(0)
|
||||
#define ENSURE_APP_IS_IDLE() do { if(m_status != STATUS_IDLE) { x264_beep(x264_beep_warning); qWarning("Cannot perfrom this action at this time!"); return; } } while(0)
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Constructor & Destructor
|
||||
@ -763,7 +763,7 @@ void MainWindow::init(void)
|
||||
//Create the IPC listener thread
|
||||
if(m_ipc->isInitialized())
|
||||
{
|
||||
connect(m_ipc, SIGNAL(receivedCommand(int,QStringList)), this, SLOT(handleCommand(int,QStringList)), Qt::QueuedConnection);
|
||||
connect(m_ipc, SIGNAL(receivedCommand(int,QStringList,quint32)), this, SLOT(handleCommand(int,QStringList,quint32)), Qt::QueuedConnection);
|
||||
m_ipc->startListening();
|
||||
}
|
||||
|
||||
@ -991,7 +991,7 @@ void MainWindow::handlePendingFiles(void)
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::handleCommand(const int &command, const QStringList &args)
|
||||
void MainWindow::handleCommand(const int &command, const QStringList &args, const quint32 &flags)
|
||||
{
|
||||
if((m_status != STATUS_IDLE) && (m_status != STATUS_AWAITING))
|
||||
{
|
||||
@ -1008,6 +1008,7 @@ void MainWindow::handleCommand(const int &command, const QStringList &args)
|
||||
{
|
||||
qDebug("Arguments: %s", iter->toUtf8().constData());
|
||||
}
|
||||
qDebug("The Flags: 0x%08X", flags);
|
||||
qDebug("---------- IPC ----------\n");
|
||||
#endif //IPC_LOGGING
|
||||
|
||||
@ -1041,6 +1042,7 @@ void MainWindow::handleCommand(const int &command, const QStringList &args)
|
||||
if(QFileInfo(args[0]).exists() && QFileInfo(args[0]).isFile())
|
||||
{
|
||||
OptionsModel options;
|
||||
bool runImmediately = (countRunningJobs() < (m_preferences->autoRunNextJob() ? m_preferences->maxRunningJobCount() : 1));
|
||||
if(!(args[2].isEmpty() || X264_STRCMP(args[2], "-")))
|
||||
{
|
||||
if(!OptionsModel::loadTemplate(&options, args[2].trimmed()))
|
||||
@ -1048,7 +1050,9 @@ void MainWindow::handleCommand(const int &command, const QStringList &args)
|
||||
qWarning("Template '%s' could not be found -> using defaults!", args[2].trimmed().toUtf8().constData());
|
||||
}
|
||||
}
|
||||
appendJob(args[0], args[1], &options, true);
|
||||
if((flags & IPC_FLAG_FORCE_START) && (!(flags & IPC_FLAG_FORCE_ENQUEUE))) runImmediately = true;
|
||||
if((flags & IPC_FLAG_FORCE_ENQUEUE) && (!(flags & IPC_FLAG_FORCE_START))) runImmediately = false;
|
||||
appendJob(args[0], args[1], &options, runImmediately);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1493,6 +1497,7 @@ void MainWindow::updateTaskbar(JobStatus status, const QIcon &icon)
|
||||
bool MainWindow::parseCommandLineArgs(void)
|
||||
{
|
||||
bool bCommandAccepted = false;
|
||||
unsigned int flags = 0;
|
||||
|
||||
QStringList files;
|
||||
QStringList args = x264_arguments();
|
||||
@ -1520,8 +1525,8 @@ bool MainWindow::parseCommandLineArgs(void)
|
||||
if(args.size() >= 3)
|
||||
{
|
||||
const QStringList list = args.mid(0, 3);
|
||||
handleCommand(IPC_OPCODE_ADD_JOB, list);
|
||||
args.erase(args.begin(), args.begin() + 3);
|
||||
handleCommand(IPC_OPCODE_ADD_JOB, list, flags);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1529,13 +1534,22 @@ bool MainWindow::parseCommandLineArgs(void)
|
||||
args.clear();
|
||||
}
|
||||
}
|
||||
else
|
||||
else if(X264_STRCMP(current, "--force-start") || X264_STRCMP(current, "--no-force-start"))
|
||||
{
|
||||
if(!current.startsWith("--"))
|
||||
{
|
||||
qWarning("Unknown argument: %s", current.toUtf8().constData());
|
||||
break;
|
||||
}
|
||||
const bool bEnabled = X264_STRCMP(current, "--force-start");
|
||||
flags = bEnabled ? (flags | IPC_FLAG_FORCE_START) : (flags & (~IPC_FLAG_FORCE_START));
|
||||
if(bEnabled) flags = flags & (~IPC_FLAG_FORCE_ENQUEUE);
|
||||
}
|
||||
else if(X264_STRCMP(current, "--force-enqueue") || X264_STRCMP(current, "--no-force-enqueue"))
|
||||
{
|
||||
const bool bEnabled = X264_STRCMP(current, "--force-enqueue");
|
||||
flags = bEnabled ? (flags | IPC_FLAG_FORCE_ENQUEUE) : (flags & (~IPC_FLAG_FORCE_ENQUEUE));
|
||||
if(bEnabled) flags = flags & (~IPC_FLAG_FORCE_START);
|
||||
}
|
||||
else if(!current.startsWith("--"))
|
||||
{
|
||||
qWarning("Unknown argument: %s", current.toUtf8().constData());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -113,7 +113,7 @@ private slots:
|
||||
void checkUpdates(void);
|
||||
void handlePendingFiles(void);
|
||||
void init(void);
|
||||
void handleCommand(const int &command, const QStringList &args);
|
||||
void handleCommand(const int &command, const QStringList &args, const quint32 &flags = 0);
|
||||
void jobSelected(const QModelIndex ¤t, const QModelIndex &previous);
|
||||
void jobChangedData(const QModelIndex &top, const QModelIndex &bottom);
|
||||
void jobLogExtended(const QModelIndex & parent, int start, int end);
|
||||
|
Loading…
Reference in New Issue
Block a user