diff --git a/src/Config.h b/src/Config.h index 6821ee9f..ed0a5edf 100644 --- a/src/Config.h +++ b/src/Config.h @@ -30,7 +30,7 @@ #define VER_LAMEXP_MINOR_LO 2 #define VER_LAMEXP_TYPE RC #define VER_LAMEXP_PATCH 4 -#define VER_LAMEXP_BUILD 576 +#define VER_LAMEXP_BUILD 577 /////////////////////////////////////////////////////////////////////////////// // Tools versions diff --git a/src/Decoder_AAC.cpp b/src/Decoder_AAC.cpp index f8fd3ad1..c6915e18 100644 --- a/src/Decoder_AAC.cpp +++ b/src/Decoder_AAC.cpp @@ -68,7 +68,7 @@ bool AACDecoder::decode(const QString &sourceFile, const QString &outputFile, vo emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Decoder_AC3.cpp b/src/Decoder_AC3.cpp index 96bfe190..a46d720c 100644 --- a/src/Decoder_AC3.cpp +++ b/src/Decoder_AC3.cpp @@ -68,7 +68,7 @@ bool AC3Decoder::decode(const QString &sourceFile, const QString &outputFile, vo emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Decoder_ADPCM.cpp b/src/Decoder_ADPCM.cpp index 9c9547d9..f0689ee0 100644 --- a/src/Decoder_ADPCM.cpp +++ b/src/Decoder_ADPCM.cpp @@ -72,7 +72,7 @@ bool ADPCMDecoder::decode(const QString &sourceFile, const QString &outputFile, emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Decoder_ALAC.cpp b/src/Decoder_ALAC.cpp index f26d125f..f4af090a 100644 --- a/src/Decoder_ALAC.cpp +++ b/src/Decoder_ALAC.cpp @@ -70,11 +70,11 @@ bool ALACDecoder::decode(const QString &sourceFile, const QString &outputFile, v emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(180000); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); - qWarning("TTAEnc process timed out <-- killing!"); + qWarning("ALAC process timed out <-- killing!"); emit messageLogged("\nPROCESS TIMEOUT !!!"); bTimeout = true; break; diff --git a/src/Decoder_Avisynth.cpp b/src/Decoder_Avisynth.cpp index f6fb8a5b..98f71c4c 100644 --- a/src/Decoder_Avisynth.cpp +++ b/src/Decoder_Avisynth.cpp @@ -70,7 +70,7 @@ bool AvisynthDecoder::decode(const QString &sourceFile, const QString &outputFil emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Decoder_FLAC.cpp b/src/Decoder_FLAC.cpp index 009d8183..09dbd9e7 100644 --- a/src/Decoder_FLAC.cpp +++ b/src/Decoder_FLAC.cpp @@ -69,7 +69,7 @@ bool FLACDecoder::decode(const QString &sourceFile, const QString &outputFile, v emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Decoder_MAC.cpp b/src/Decoder_MAC.cpp index 35cef1ab..5bbcd1ed 100644 --- a/src/Decoder_MAC.cpp +++ b/src/Decoder_MAC.cpp @@ -69,7 +69,7 @@ bool MACDecoder::decode(const QString &sourceFile, const QString &outputFile, vo emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Decoder_MP3.cpp b/src/Decoder_MP3.cpp index 4ae29adc..4db4d084 100644 --- a/src/Decoder_MP3.cpp +++ b/src/Decoder_MP3.cpp @@ -68,7 +68,7 @@ bool MP3Decoder::decode(const QString &sourceFile, const QString &outputFile, vo emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Decoder_Musepack.cpp b/src/Decoder_Musepack.cpp index 94ddb7d7..5174dab3 100644 --- a/src/Decoder_Musepack.cpp +++ b/src/Decoder_Musepack.cpp @@ -70,7 +70,7 @@ bool MusepackDecoder::decode(const QString &sourceFile, const QString &outputFil emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(180000); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Decoder_Shorten.cpp b/src/Decoder_Shorten.cpp index 311d7d25..682b67ff 100644 --- a/src/Decoder_Shorten.cpp +++ b/src/Decoder_Shorten.cpp @@ -71,7 +71,7 @@ bool ShortenDecoder::decode(const QString &sourceFile, const QString &outputFile emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(180000); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Decoder_Speex.cpp b/src/Decoder_Speex.cpp index d5ddcf67..299333a0 100644 --- a/src/Decoder_Speex.cpp +++ b/src/Decoder_Speex.cpp @@ -69,7 +69,7 @@ bool SpeexDecoder::decode(const QString &sourceFile, const QString &outputFile, emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Decoder_TTA.cpp b/src/Decoder_TTA.cpp index 8f84e6e0..4b104de5 100644 --- a/src/Decoder_TTA.cpp +++ b/src/Decoder_TTA.cpp @@ -70,7 +70,7 @@ bool TTADecoder::decode(const QString &sourceFile, const QString &outputFile, vo emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(180000); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Decoder_Vorbis.cpp b/src/Decoder_Vorbis.cpp index b0f69442..a63392c2 100644 --- a/src/Decoder_Vorbis.cpp +++ b/src/Decoder_Vorbis.cpp @@ -68,7 +68,7 @@ bool VorbisDecoder::decode(const QString &sourceFile, const QString &outputFile, emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Decoder_WMA.cpp b/src/Decoder_WMA.cpp index 92568681..117813d9 100644 --- a/src/Decoder_WMA.cpp +++ b/src/Decoder_WMA.cpp @@ -79,7 +79,7 @@ bool WMADecoder::decode(const QString &sourceFile, const QString &outputFile, vo emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Decoder_WavPack.cpp b/src/Decoder_WavPack.cpp index d2c15835..e6497b51 100644 --- a/src/Decoder_WavPack.cpp +++ b/src/Decoder_WavPack.cpp @@ -69,7 +69,7 @@ bool WavPackDecoder::decode(const QString &sourceFile, const QString &outputFile emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Encoder_AAC.cpp b/src/Encoder_AAC.cpp index 9fa0a784..b4e29675 100644 --- a/src/Encoder_AAC.cpp +++ b/src/Encoder_AAC.cpp @@ -114,7 +114,7 @@ bool AACEncoder::encode(const QString &sourceFile, const AudioFileModel &metaInf emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); @@ -206,7 +206,7 @@ bool AACEncoder::encode(const QString &sourceFile, const AudioFileModel &metaInf emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Encoder_AC3.cpp b/src/Encoder_AC3.cpp index 39c625ea..2b62e571 100644 --- a/src/Encoder_AC3.cpp +++ b/src/Encoder_AC3.cpp @@ -108,7 +108,7 @@ bool AC3Encoder::encode(const QString &sourceFile, const AudioFileModel &metaInf emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Encoder_FLAC.cpp b/src/Encoder_FLAC.cpp index ae3133b3..22e82073 100644 --- a/src/Encoder_FLAC.cpp +++ b/src/Encoder_FLAC.cpp @@ -86,7 +86,7 @@ bool FLACEncoder::encode(const QString &sourceFile, const AudioFileModel &metaIn emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Encoder_MP3.cpp b/src/Encoder_MP3.cpp index 9a6ee16d..b6dba696 100644 --- a/src/Encoder_MP3.cpp +++ b/src/Encoder_MP3.cpp @@ -151,7 +151,7 @@ bool MP3Encoder::encode(const QString &sourceFile, const AudioFileModel &metaInf emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Encoder_Vorbis.cpp b/src/Encoder_Vorbis.cpp index 1b4c69b9..f6a766ff 100644 --- a/src/Encoder_Vorbis.cpp +++ b/src/Encoder_Vorbis.cpp @@ -112,7 +112,7 @@ bool VorbisEncoder::encode(const QString &sourceFile, const AudioFileModel &meta emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Filter_Downmix.cpp b/src/Filter_Downmix.cpp index 1f23bfcb..afdf065e 100644 --- a/src/Filter_Downmix.cpp +++ b/src/Filter_Downmix.cpp @@ -73,7 +73,7 @@ bool DownmixFilter::apply(const QString &sourceFile, const QString &outputFile, emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Filter_Normalize.cpp b/src/Filter_Normalize.cpp index c948489a..1c762758 100644 --- a/src/Filter_Normalize.cpp +++ b/src/Filter_Normalize.cpp @@ -76,7 +76,7 @@ bool NormalizeFilter::apply(const QString &sourceFile, const QString &outputFile emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Filter_Resample.cpp b/src/Filter_Resample.cpp index d4be13da..6d831fee 100644 --- a/src/Filter_Resample.cpp +++ b/src/Filter_Resample.cpp @@ -76,7 +76,7 @@ bool ResampleFilter::apply(const QString &sourceFile, const QString &outputFile, emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Filter_ToneAdjust.cpp b/src/Filter_ToneAdjust.cpp index a155fe5e..126636ca 100644 --- a/src/Filter_ToneAdjust.cpp +++ b/src/Filter_ToneAdjust.cpp @@ -85,7 +85,7 @@ bool ToneAdjustFilter::apply(const QString &sourceFile, const QString &outputFil emit messageLogged("\nABORTED BY USER !!!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Thread_CueSplitter.cpp b/src/Thread_CueSplitter.cpp index a4e4f60a..5a9fb0cb 100644 --- a/src/Thread_CueSplitter.cpp +++ b/src/Thread_CueSplitter.cpp @@ -300,7 +300,7 @@ void CueSplitter::splitFile(const QString &output, const int trackNo, const QStr qWarning("Process was aborted on user request!"); break; } - process.waitForReadyRead(); + process.waitForReadyRead(m_processTimeoutInterval); if(!process.bytesAvailable() && process.state() == QProcess::Running) { process.kill(); diff --git a/src/Thread_CueSplitter.h b/src/Thread_CueSplitter.h index 74f2a0cf..cc5f0c79 100644 --- a/src/Thread_CueSplitter.h +++ b/src/Thread_CueSplitter.h @@ -70,6 +70,8 @@ private: unsigned int m_nTracksSuccess; unsigned int m_nTracksSkipped; + static const int m_processTimeoutInterval = 180000; + bool m_bAborted; bool m_bSuccess; diff --git a/src/Tool_Abstract.h b/src/Tool_Abstract.h index 8e197af0..4cb6e42e 100644 --- a/src/Tool_Abstract.h +++ b/src/Tool_Abstract.h @@ -42,6 +42,9 @@ signals: void statusUpdated(int progress); void messageLogged(const QString &line); +protected: + static const int m_processTimeoutInterval = 180000; + private: static QMutex *m_mutex_startProcess; static void *m_handle_jobObject;