diff --git a/src/engines/core/base_engine.py b/src/engines/core/base_engine.py index cfff998..45e8575 100644 --- a/src/engines/core/base_engine.py +++ b/src/engines/core/base_engine.py @@ -47,7 +47,7 @@ class BaseRenderEngine(object): def worker_class(): # override when subclassing to link worker class raise NotImplementedError("Worker class not implemented") - def get_help(self): + def get_help(self): # override if renderer uses different help flag path = self.renderer_path() if not path: raise FileNotFoundError("renderer path not found") @@ -56,7 +56,7 @@ class BaseRenderEngine(object): return help_doc def get_project_info(self, project_path, timeout=10): - raise NotImplementedError(f"get_project_info not implemented for {cls.__name__}") + raise NotImplementedError(f"get_project_info not implemented for {self.__name__}") @classmethod def get_output_formats(cls): @@ -66,6 +66,9 @@ class BaseRenderEngine(object): def get_arguments(cls): pass + def get_options(self): # override to return options for ui + return {} + def perform_presubmission_tasks(self, project_path): return project_path diff --git a/src/engines/ffmpeg/ffmpeg_worker.py b/src/engines/ffmpeg/ffmpeg_worker.py index 687d35b..b7780fd 100644 --- a/src/engines/ffmpeg/ffmpeg_worker.py +++ b/src/engines/ffmpeg/ffmpeg_worker.py @@ -10,15 +10,9 @@ class FFMPEGRenderWorker(BaseRenderWorker): engine = FFMPEG - def __init__(self, input_path, output_path, args=None, parent=None, name=None): - super(FFMPEGRenderWorker, self).__init__(input_path=input_path, output_path=output_path, args=args, - parent=parent, name=name) - - stream_info = subprocess.check_output([self.renderer_path, "-i", # https://stackoverflow.com/a/61604105 - input_path, "-map", "0:v:0", "-c", "copy", "-f", "null", "-y", - "/dev/null"], stderr=subprocess.STDOUT).decode('utf-8') - found_frames = re.findall('frame=\s*(\d+)', stream_info) - self.project_length = found_frames[-1] if found_frames else '-1' + def __init__(self, input_path, output_path, engine_path, args=None, parent=None, name=None): + super(FFMPEGRenderWorker, self).__init__(input_path=input_path, output_path=output_path, + engine_path=engine_path, args=args, parent=parent, name=name) self.current_frame = -1 def generate_worker_subprocess(self):