aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortassaron2022-04-21 16:01:34 -0400
committertassaron2022-04-21 16:01:34 -0400
commit2a66c3b77bb8c438a3f278da2d4d90a7ee476feb (patch)
treec511abef1553588f8c2e7175aef36d3e9eb36073 /src
parentc91d10033a74d8df62696803ccaf4a3750c7ed8c (diff)
fail gracefully if createFfmpegCommand returns empty
Diffstat (limited to 'src')
-rw-r--r--src/video_thread.py23
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)