From 47770c4fdda28785e0546438c6504874555d234f Mon Sep 17 00:00:00 2001 From: Brett Williams Date: Tue, 30 Jul 2024 20:00:07 -0500 Subject: [PATCH] Update blender worker to get current frame from filepath output --- src/engines/blender/blender_worker.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/engines/blender/blender_worker.py b/src/engines/blender/blender_worker.py index dc15639..88258a5 100644 --- a/src/engines/blender/blender_worker.py +++ b/src/engines/blender/blender_worker.py @@ -83,15 +83,22 @@ class BlenderRenderWorker(BaseRenderWorker): elif line.lower().startswith('error'): self.log_error(line) elif 'Saved' in line or 'Saving' in line or 'quit' in line: - match = re.match(r'Time: (.*) \(Saving', line) - if match: - time_completed = match.groups()[0] + render_stats_match = re.match(r'Time: (.*) \(Saving', line) + output_filename_match = re.match(r"Saved: .*_(\d+)\.\w+", line) # try to get frame # from filename + if output_filename_match: + output_file_number = output_filename_match.groups()[0] + try: + self.current_frame = int(output_file_number) + except ValueError: + pass + elif render_stats_match: + time_completed = render_stats_match.groups()[0] frame_count = self.current_frame - self.end_frame + self.total_frames logger.info(f'Frame #{self.current_frame} - ' f'{frame_count} of {self.total_frames} completed in {time_completed} | ' f'Total Elapsed Time: {datetime.now() - self.start_time}') else: - logger.debug(line) + logger.debug(f'DEBUG: {line}') else: pass # if len(line.strip()):