diff options
| author | tassaron | 2022-04-21 16:01:34 -0400 |
|---|---|---|
| committer | tassaron | 2022-04-21 16:01:34 -0400 |
| commit | 2a66c3b77bb8c438a3f278da2d4d90a7ee476feb (patch) | |
| tree | c511abef1553588f8c2e7175aef36d3e9eb36073 /src | |
| parent | c91d10033a74d8df62696803ccaf4a3750c7ed8c (diff) | |
fail gracefully if createFfmpegCommand returns empty
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_thread.py | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/video_thread.py b/src/video_thread.py index 4a07fb2..0a39f28 100644 --- a/src/video_thread.py +++ b/src/video_thread.py @@ -249,13 +249,21 @@ class Worker(QtCore.QObject): self.inputFile, self.outputFile, self.components, duration ) except sp.CalledProcessError as e: + #FIXME video_thread should own this error signal, not components self.components[0]._error.emit("Ffmpeg could not be found. Is it installed?", str(e)) - self.cancelExport() + self.error = True return cmd = " ".join(ffmpegCommand) print('###### FFMPEG COMMAND ######\n%s' % cmd) print('############################') + if not cmd: + #FIXME video_thread should own this error signal, not components + self.components[0]._error.emit("The ffmpeg command could not be generated.", "") + log.critical("Cancelling render process due to failure while generating the ffmpeg command.") + self.failExport() + return + log.info('Opening pipe to ffmpeg') log.info(cmd) try: @@ -264,7 +272,7 @@ class Worker(QtCore.QObject): stdin=sp.PIPE, stdout=sys.stdout, stderr=sys.stdout ) except sp.CalledProcessError: - log.critical('Ffmpeg pipe couldn\'t be created!') + log.critical('Ffmpeg pipe couldn\'t be created!', exc_info=True) raise # =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~==~=~=~=~=~=~=~=~=~=~=~=~=~=~ @@ -347,9 +355,7 @@ class Worker(QtCore.QObject): self.progressBarSetText.emit('Export Canceled') else: if self.error: - print("Export Failed") - self.progressBarUpdate.emit(0) - self.progressBarSetText.emit('Export Failed') + self.failExport() else: print("Export Complete") self.progressBarUpdate.emit(100) @@ -372,12 +378,15 @@ class Worker(QtCore.QObject): self.error = True self.out_pipe.wait() - def cancelExport(self): + def cancelExport(self, message='Export Canceled'): self.progressBarUpdate.emit(0) - self.progressBarSetText.emit('Export Canceled') + self.progressBarSetText.emit(message) self.encoding.emit(False) self.videoCreated.emit() + def failExport(self): + self.cancelExport('Export Failed') + def updateProgress(self, pStr, pVal): self.progressBarValue.emit(pVal) self.progressBarSetText.emit(pStr) |
