mirror of
https://github.com/stevenrobertson/cuburn.git
synced 2025-02-05 03:30:05 -05:00
Move naming code into a common place
This commit is contained in:
parent
04702d7903
commit
c7654357a6
@ -5,6 +5,7 @@ import numpy as np
|
|||||||
|
|
||||||
from genome.specs import toplevels
|
from genome.specs import toplevels
|
||||||
from genome.use import RefWrapper, SplineWrapper
|
from genome.use import RefWrapper, SplineWrapper
|
||||||
|
import output
|
||||||
|
|
||||||
BUILTIN={
|
BUILTIN={
|
||||||
'1080p': dict(width=1920, height=1080),
|
'1080p': dict(width=1920, height=1080),
|
||||||
@ -57,7 +58,19 @@ def add_args(parser=None):
|
|||||||
spa.add_argument('--height', type=int, metavar='PX')
|
spa.add_argument('--height', type=int, metavar='PX')
|
||||||
|
|
||||||
out = parser.add_argument_group('Output options')
|
out = parser.add_argument_group('Output options')
|
||||||
out.add_argument('--codec', choices=['jpeg', 'png', 'tiff', 'x264', 'vp8', 'vp9', 'prores'])
|
out.add_argument('--codec',
|
||||||
|
choices=['jpeg', 'png', 'tiff', 'x264', 'vp8', 'vp9', 'prores'])
|
||||||
|
out.add_argument('-n', metavar='NAME', type=str, dest='name',
|
||||||
|
help="Prefix to use when saving files (default is basename of input)")
|
||||||
|
out.add_argument('--suffix', metavar='NAME', type=str, dest='suffix',
|
||||||
|
help="Suffix to use when saving files (default '')", default='')
|
||||||
|
out.add_argument('-o', metavar='DIR', type=str, dest='dir',
|
||||||
|
help="Output directory", default='.')
|
||||||
|
out.add_argument('--resume', action='store_true', dest='resume',
|
||||||
|
help="Don't overwrite output files that are newer than the input")
|
||||||
|
out.add_argument('--subdir', action='store_true',
|
||||||
|
help="Use basename as subdirectory of out dir, instead of prefix")
|
||||||
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
def get_from_args(args):
|
def get_from_args(args):
|
||||||
@ -112,3 +125,35 @@ def enumerate_times(gprof):
|
|||||||
if gprof.start is not None:
|
if gprof.start is not None:
|
||||||
times = times[gprof.start:]
|
times = times[gprof.start:]
|
||||||
return times[::gprof.skip+1]
|
return times[::gprof.skip+1]
|
||||||
|
|
||||||
|
def enumerate_jobs(gprof, basename, args, resume=None):
|
||||||
|
"""
|
||||||
|
Like `enumerate_times`, but returns `(output_basepath, center_times)`,
|
||||||
|
where the output base path is the path for output without any file
|
||||||
|
extensions.
|
||||||
|
|
||||||
|
If `resume` is set to True, either by kwarg or (if the kwarg is None)
|
||||||
|
in the argparse arguments, check for the existence of a file with the
|
||||||
|
canonical extension for the selected output module.
|
||||||
|
"""
|
||||||
|
|
||||||
|
if args.name is not None:
|
||||||
|
basename = args.name
|
||||||
|
prefix = os.path.join(args.dir, basename)
|
||||||
|
if args.subdir:
|
||||||
|
if not os.path.isdir(prefix):
|
||||||
|
os.mkdir(prefix)
|
||||||
|
prefix_plus = prefix + '/'
|
||||||
|
else:
|
||||||
|
prefix_plus = prefix + '_'
|
||||||
|
|
||||||
|
frames = [('%s%05d%s' % (prefix_plus, i, args.suffix), t)
|
||||||
|
for i, t in enumerate_times(gprof)]
|
||||||
|
|
||||||
|
resume = args.resume if resume is None else resume
|
||||||
|
if resume:
|
||||||
|
out_suffix = output.get_suffix_for_profile(gprof)
|
||||||
|
frames = [(n, t) for (n, t) in frames
|
||||||
|
if not os.path.isfile(n + out_suffix)]
|
||||||
|
|
||||||
|
return frames
|
||||||
|
33
main.py
33
main.py
@ -32,19 +32,8 @@ def main(args, prof):
|
|||||||
print convert.to_json(gnm)
|
print convert.to_json(gnm)
|
||||||
return
|
return
|
||||||
gprof = profile.wrap(prof, gnm)
|
gprof = profile.wrap(prof, gnm)
|
||||||
|
frames = profile.enumerate_jobs(gprof, basename, args)
|
||||||
if args.name is not None:
|
if not frames: return
|
||||||
basename = args.name
|
|
||||||
prefix = os.path.join(args.dir, basename)
|
|
||||||
if args.subdir:
|
|
||||||
if not os.path.isdir(prefix):
|
|
||||||
os.mkdir(prefix)
|
|
||||||
prefix_plus = prefix + '/'
|
|
||||||
else:
|
|
||||||
prefix_plus = prefix + '_'
|
|
||||||
|
|
||||||
frames = [('%s%05d%s' % (prefix_plus, i, args.suffix), t)
|
|
||||||
for i, t in profile.enumerate_times(gprof)]
|
|
||||||
|
|
||||||
import pycuda.driver as cuda
|
import pycuda.driver as cuda
|
||||||
cuda.init()
|
cuda.init()
|
||||||
@ -59,13 +48,7 @@ def main(args, prof):
|
|||||||
rdr = render.Renderer(gnm, gprof, keep=args.keep, arch=arch)
|
rdr = render.Renderer(gnm, gprof, keep=args.keep, arch=arch)
|
||||||
last_render_time_ms = 0
|
last_render_time_ms = 0
|
||||||
|
|
||||||
m = os.path.getmtime(args.flame)
|
|
||||||
for name, times in frames:
|
for name, times in frames:
|
||||||
if args.resume:
|
|
||||||
fp = name + output.get_suffix_for_profile(gprof)
|
|
||||||
if os.path.isfile(fp) and m < os.path.getmtime(fp):
|
|
||||||
continue
|
|
||||||
|
|
||||||
def save(buf):
|
def save(buf):
|
||||||
out, log = rdr.out.encode(buf)
|
out, log = rdr.out.encode(buf)
|
||||||
for suffix, file_like in out.items():
|
for suffix, file_like in out.items():
|
||||||
@ -128,21 +111,9 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
parser.add_argument('flame', metavar='ID', type=str,
|
parser.add_argument('flame', metavar='ID', type=str,
|
||||||
help="Filename or flame ID of genome to render")
|
help="Filename or flame ID of genome to render")
|
||||||
parser.add_argument('-n', metavar='NAME', type=str, dest='name',
|
|
||||||
help="Prefix to use when saving files (default is basename of input)")
|
|
||||||
parser.add_argument('--suffix', metavar='NAME', type=str, dest='suffix',
|
|
||||||
help="Suffix to use when saving files (default '')", default='')
|
|
||||||
parser.add_argument('-o', metavar='DIR', type=str, dest='dir',
|
|
||||||
help="Output directory", default='.')
|
|
||||||
parser.add_argument('--resume', action='store_true', dest='resume',
|
|
||||||
help="Don't overwrite output files that are newer than the input")
|
|
||||||
parser.add_argument('--pause', action='store_true',
|
|
||||||
help="Don't close the preview window after rendering is finished")
|
|
||||||
parser.add_argument('-d', '--genomedb', metavar='PATH', type=str,
|
parser.add_argument('-d', '--genomedb', metavar='PATH', type=str,
|
||||||
help="Path to genome database (file or directory, default '.')",
|
help="Path to genome database (file or directory, default '.')",
|
||||||
default='.')
|
default='.')
|
||||||
parser.add_argument('--subdir', action='store_true',
|
|
||||||
help="Use basename as subdirectory of out dir, instead of prefix")
|
|
||||||
parser.add_argument('--raw', metavar='PATH', type=str, dest='rawfn',
|
parser.add_argument('--raw', metavar='PATH', type=str, dest='rawfn',
|
||||||
help="Target file for raw buffer, to enable previews.")
|
help="Target file for raw buffer, to enable previews.")
|
||||||
parser.add_argument('--half', action='store_true',
|
parser.add_argument('--half', action='store_true',
|
||||||
|
Loading…
Reference in New Issue
Block a user