From 07504093e07bf1da17d6b91db393468b8f54aee1 Mon Sep 17 00:00:00 2001 From: Taeyeon Mori Date: Mon, 18 Jun 2018 06:10:41 +0200 Subject: [PATCH] xconv: [h1] Import changes --- lib/python/xconv/__init__.py | 2 +- lib/python/xconv/app.py | 16 +++++++++------- lib/python/xconv/profile.py | 1 + lib/python/xconv/profiles/getsubs.py | 2 +- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/python/xconv/__init__.py b/lib/python/xconv/__init__.py index 12871b6..79a04ad 100644 --- a/lib/python/xconv/__init__.py +++ b/lib/python/xconv/__init__.py @@ -23,4 +23,4 @@ xconv ffmpeg wrapper based on AdvancedAV along with this program. If not, see . """ -version_info = 0, 3, 1 +version_info = 0, 3, 2 diff --git a/lib/python/xconv/app.py b/lib/python/xconv/app.py index 8ef8dd0..1b1ba92 100644 --- a/lib/python/xconv/app.py +++ b/lib/python/xconv/app.py @@ -47,13 +47,15 @@ class OutputFile(advancedav.OutputFile): self.name = splitext(self.name)[0] + "." + ext -class SimpleTask(advancedav.SimpleTask): +class XconvMixin: output_factory = OutputFile -class AdvancedTask(advancedav.Task): - output_factory = OutputFile +class SimpleTask(XconvMixin, advancedav.SimpleTask): + pass + +class AdvancedTask(XconvMixin, advancedav.Task): def __init__(self, aav, output_prefix): self.output_prefix = output_prefix self.output_directory = dirname(output_prefix) @@ -215,12 +217,12 @@ def main(argv): if args.update: for task in tasks[:]: - for output in [o for o in task.outputs if exists(o.name)]: - print("\033[33m Skipping existing '%s' (--update)\033[0m\033[K" % basename(skip.name)) - task.outputs.remove(skip) + for output in [o for o in task.outputs if exists(o.filename)]: + print("\033[33m Skipping existing '%s' (--update)\033[0m\033[K" % output.name) + task.outputs.remove(output) if not tasks.outputs: print("\033[33m Skipping task '%s' because no output files are left\033[0m\033[K" % task_name(task)) - tasks.remove[task] + tasks.remove(task) print("\033[35mExecuting Tasks..\033[0m\033[K") diff --git a/lib/python/xconv/profile.py b/lib/python/xconv/profile.py index 70fe1fb..da2928a 100644 --- a/lib/python/xconv/profile.py +++ b/lib/python/xconv/profile.py @@ -97,6 +97,7 @@ def features(**features): - argshax: Pass parsed cmdline arguments in 'args' kwd - singleaudio: Indicates that it operates on a single audio stream. No effects - no_single_output: Profile doesn't constitute a 1:1 file conversion. Don't use SimpleTask + - skip_existing_output: omit any outputs that already exist. (i.e. always --update) - advanced_task: reserved """ def apply(f): diff --git a/lib/python/xconv/profiles/getsubs.py b/lib/python/xconv/profiles/getsubs.py index 0a04232..76c227c 100644 --- a/lib/python/xconv/profiles/getsubs.py +++ b/lib/python/xconv/profiles/getsubs.py @@ -34,7 +34,7 @@ from ..profile import * @features(no_single_output=True) def getsubs(task, defines): for stream in task.iter_subtitle_streams(): - of = task.add_output("%s.%s.%s" % (task.output_prefix, task.inputs.index(stream.file), stream.stream_spec), None) # TODO get real file extension + of = task.add_output("%s.%s.%s.%s" % (task.output_prefix, task.inputs.index(stream.file), stream.pertype_index, stream.codec), None) # TODO get real file extension os = of.map_stream(stream) if "format" in defines: os.codec = defines["format"]