An execution of a media tool process. More...
Signals | |
void | readyReadOutputData () |
Emitted when some binary data are available from standard output. More... | |
![]() | |
void | completed (bool success) |
Emitted when the action completes. More... | |
void | progress (const QString &description, int current, int maximum, int elapsedSeconds, int remainingSeconds) |
Emitted when some progress in the reporting is available. More... | |
void | started () |
Emitted when the action starts. More... | |
Public Member Functions | |
QtlMovieProcess (const QtlMovieExecFile *execFile, const QStringList &arguments, bool hasBinaryOutput, const QtlMovieSettings *settings, QtlLogger *log, QObject *parent=0, QtlDataPull *dataPull=0) | |
Constructor. More... | |
virtual void | abort () Q_DECL_OVERRIDE |
Abort process execution. More... | |
QStringList | arguments () const |
Get the command line arguments. More... | |
const QtlMovieExecFile * | execFile () const |
Get the command executable file. More... | |
QIODevice * | outputDevice () const |
Return the device from which standard output can be read. More... | |
void | setArguments (const QStringList &arguments) |
Set the command line arguments. More... | |
void | setPriority (Qtl::ProcessPriority priority) |
Set the process priority. More... | |
virtual bool | start () Q_DECL_OVERRIDE |
Start the process. More... | |
bool | useDataPullProgressReport (bool on) |
Use the progress report from the QtlDataPull when possible. More... | |
bool | useDataPullProgressReport () const |
Check if progress report from the QtlDataPull is active. More... | |
![]() | |
QtlMovieAction (const QtlMovieSettings *settings, QtlLogger *log, QObject *parent=0) | |
Constructor. More... | |
virtual | ~QtlMovieAction () |
Virtual destructor. More... | |
virtual void | debug (const QString &line, const QColor &color=QColor()) Q_DECL_OVERRIDE |
Log a line of debug text. More... | |
QString | description () const |
Get the description of the action. More... | |
int | elapsedSeconds () const |
Get the number of seconds since the action started. More... | |
bool | isCompleted () const |
Check if the action is completed. More... | |
bool | isSilent () const |
Check if unimportant messages are skipped. More... | |
bool | isStarted () const |
Check if the action was started (and possibly completed in the meantime). More... | |
virtual void | line (const QString &line, const QColor &color=QColor()) Q_DECL_OVERRIDE |
Log a line of text. More... | |
void | setDescription (const QString &description) |
Set the description of the action. More... | |
void | setSilent (bool silent) |
Set if unimportant messages are skipped. More... | |
const QtlMovieSettings * | settings () const |
Get the application settings. More... | |
virtual void | text (const QString &text) Q_DECL_OVERRIDE |
Log text. More... | |
Protected Member Functions | |
QStringList | getJobVariable (const QString &name) const |
Get the value of a variable in the job. More... | |
virtual void | processOutputLine (QProcess::ProcessChannel channel, const QString &textLine) |
Process one text line from standard error or standard output. More... | |
void | setJobVariable (const QString &name, const QStringList &value) |
Store a variable in the parent job. More... | |
virtual void | updateEnvironment (QProcessEnvironment &env) |
Update the QProcessEnvironment for the target process before it starts. More... | |
![]() | |
virtual void | emitCompleted (bool success, const QString &message=QString()) |
Emit the completed() signal. More... | |
virtual void | emitProgress (int current, int maximum, int remainingSeconds=-1) |
Emit the progress() signal. More... | |
Private Slots | |
void | dataPullProgressed (qint64 current, qint64 maximum) |
Invoked when some progress in the QtlDataPull is available. More... | |
void | processError (QProcess::ProcessError error) |
Invoked when an error occurs on the process. More... | |
void | processFinished (int exitCode, QProcess::ExitStatus exitStatus) |
Invoked when the process is finished. More... | |
void | readData () |
Read as much data as possible from the process standard error (and standard output if hasBinaryOutput is false). More... | |
Private Member Functions | |
QtlMovieProcess () Q_DECL_EQ_DELETE | |
void | processCompleted (bool success, const QString &message=QString()) |
Process the termination of the process. More... | |
void | processOutputBuffer (QProcess::ProcessChannel channel, QString &buffer) |
Process a standard error or standard output buffer. More... | |
Private Attributes | |
QStringList | _arguments |
Command line arguments. More... | |
QtlDataPull * | _dataPull |
Process input. More... | |
bool | _dpProgress |
True if dataPullProgressed() was successfully set. More... | |
const QtlMovieExecFile * | _execFile |
Process executable file. More... | |
bool | _gotError |
The process reported an error. More... | |
bool | _hasBinaryOutput |
Treat standard output as binary data. More... | |
QtlProcess * | _process |
Process instance. More... | |
QProcess::ProcessError | _processError |
Last reported error. More... | |
QString | _stdError |
Standard error buffer. More... | |
QString | _stdOutput |
Standard error buffer. More... | |
An execution of a media tool process.
Text lines from standard error are logged but can be intercepted by subclasses overwriting processOutputLine().
The standard output can be either text (in which case it is processed in the same way as standard error) or binary data. In the later case, availability of standard output data is signaled by readyReadOutputData(). Standard output data can be read from outputDevice().
The progress report can be signaled by progress(). Emitting this signal is entirely up to the subclass.
QtlMovieProcess::QtlMovieProcess | ( | const QtlMovieExecFile * | execFile, |
const QStringList & | arguments, | ||
bool | hasBinaryOutput, | ||
const QtlMovieSettings * | settings, | ||
QtlLogger * | log, | ||
QObject * | parent = 0 , |
||
QtlDataPull * | dataPull = 0 |
||
) |
Constructor.
[in] | execFile | Process executable file. |
[in] | arguments | Command line arguments. |
[in] | hasBinaryOutput | When true, the standard output must be read from another object. Availability of data is signaled by readyReadOutputData(). When false, the standard output is logged, just like the standard error. |
[in] | settings | Application settings. |
[in] | log | Message logger. |
[in] | parent | Optional parent object. |
[in] | dataPull | If non zero, used to feed the standard input of the process. |
|
private |
|
virtual |
Start the process.
Reimplemented from QtlMovieAction.
Reimplemented in QtlMovieFFmpegProcess, and QtlMovieDvdAuthorProcess.
|
virtual |
Abort process execution.
If the process was started, the signal completed() will be emitted when the process actually terminates.
Reimplemented from QtlMovieAction.
|
inline |
Get the command executable file.
|
inline |
Get the command line arguments.
void QtlMovieProcess::setArguments | ( | const QStringList & | arguments | ) |
Set the command line arguments.
The process must not be already started.
|
inline |
Set the process priority.
The process must not be already started. Special privileges may be required to set Qtl::HighPriority and Qtl::VeryHighPriority.
[in] | priority | Requested priority. |
|
inline |
Return the device from which standard output can be read.
bool QtlMovieProcess::useDataPullProgressReport | ( | bool | on | ) |
Use the progress report from the QtlDataPull when possible.
This is possible only when the QtlDataPull is non zero and its reporting is available.
[in] | on | True to use the progress report from the QtlDataPull. |
|
inline |
Check if progress report from the QtlDataPull is active.
|
signal |
Emitted when some binary data are available from standard output.
|
protectedvirtual |
Process one text line from standard error or standard output.
Simply log the line. Subclasses may overwrite it.
[in] | channel | Origin of the line (QProcess::StandardOutput or QProcess::StandardError). |
[in] | textLine | Text line. |
Reimplemented in QtlMovieFFmpegProcess, QtlMovieFFmpegVolumeDetect, QtlMovieClosedCaptionsSearch, QtlMovieCcExtractorProcess, QtlMovieDvdAuthorProcess, QtlMovieGrowisofsProcess, and QtlMovieMkisofsProcess.
|
protectedvirtual |
Update the QProcessEnvironment for the target process before it starts.
Does nothing by default. Subclasses may overwrite it.
[in] | env | A set of environment variables to update. |
Reimplemented in QtlMovieFFmpegProcess, QtlMovieDvdAuthorProcess, and QtlMovieGrowisofsProcess.
|
protected |
Store a variable in the parent job.
[in] | name | Variable name. |
[in] | value | Variable value as a list of strings. |
|
protected |
Get the value of a variable in the job.
[in] | name | Variable name. |
|
privateslot |
Read as much data as possible from the process standard error (and standard output if hasBinaryOutput is false).
|
privateslot |
Invoked when the process is finished.
[in] | exitCode | Process exit code. |
[in] | exitStatus | QProcess exit status. |
|
privateslot |
Invoked when an error occurs on the process.
[in] | error | QProcess error code. |
|
privateslot |
Invoked when some progress in the QtlDataPull is available.
[in] | current | Current number of input bytes. |
[in] | maximum | Total size of the data transfer. |
|
private |
Process the termination of the process.
[in] | success | True when the process completed successfully, false otherwise. |
[in] | message | Optional error message to log. |
|
private |
Process a standard error or standard output buffer.
[in] | channel | Origin of the line (QProcess::StandardOutput or QProcess::StandardError). |
[in,out] | buffer | The buffer to process. Complete lines are removed from the buffer. |
|
private |
Process instance.
|
private |
Process executable file.
|
private |
Command line arguments.
|
private |
Treat standard output as binary data.
|
private |
Process input.
|
private |
Standard error buffer.
|
private |
Standard error buffer.
|
private |
True if dataPullProgressed() was successfully set.
|
private |
The process reported an error.
|
private |
Last reported error.