diff --git a/src/engines/blender/blender_engine.py b/src/engines/blender/blender_engine.py
index 15828e8..187fec7 100644
--- a/src/engines/blender/blender_engine.py
+++ b/src/engines/blender/blender_engine.py
@@ -117,7 +117,7 @@ class Blender(BaseRenderEngine):
# report any missing textures
not_found = re.findall("(Unable to pack file, source path .*)\n", result_text)
for err in not_found:
- logger.error(err)
+ raise ChildProcessError(err)
p = re.compile('Saved to: (.*)\n')
match = p.search(result_text)
@@ -125,6 +125,7 @@ class Blender(BaseRenderEngine):
new_path = os.path.join(dir_name, match.group(1).strip())
logger.info(f'Blender file packed successfully to {new_path}')
return new_path
+ return project_path
except Exception as e:
msg = f'Error packing .blend file: {e}'
logger.error(msg)
diff --git a/src/engines/blender/blender_worker.py b/src/engines/blender/blender_worker.py
index 2903541..7f0067c 100644
--- a/src/engines/blender/blender_worker.py
+++ b/src/engines/blender/blender_worker.py
@@ -18,14 +18,13 @@ class BlenderRenderWorker(BaseRenderWorker):
self.__frame_percent_complete = 0.0
# Scene Info
- self.scene_info = Blender(engine_path).get_project_info(input_path)
- self.start_frame = int(self.scene_info.get('start_frame', 1))
- self.end_frame = int(self.scene_info.get('end_frame', self.start_frame))
- self.project_length = (self.end_frame - self.start_frame) + 1
+ self.scene_info = {}
self.current_frame = -1
def generate_worker_subprocess(self):
+ self.scene_info = Blender(self.engine_path).get_project_info(self.input_path)
+
cmd = [self.engine_path]
if self.args.get('background', True): # optionally run render not in background
cmd.append('-b')
@@ -85,11 +84,15 @@ class BlenderRenderWorker(BaseRenderWorker):
def _parse_stdout(self, line):
- pattern = re.compile(
+ cycles_pattern = re.compile(
r'Fra:(?P\d*).*Mem:(?P\S+).*Time:(?P