diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-12-17 23:36:18 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-12-17 23:36:18 +0000 |
| commit | 8dd455ba867122056e2093e259a9a045aeeea451 (patch) | |
| tree | 1e4ca9f9a413fc34acace48b28297fd3e4d26982 /src/lib/j2k_still_encoder.cc | |
| parent | c421f6a5551f0755737f57fbeac6a0157599e0e8 (diff) | |
Various fixes to still-image mode.
Diffstat (limited to 'src/lib/j2k_still_encoder.cc')
| -rw-r--r-- | src/lib/j2k_still_encoder.cc | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/src/lib/j2k_still_encoder.cc b/src/lib/j2k_still_encoder.cc index 68088377b..968257691 100644 --- a/src/lib/j2k_still_encoder.cc +++ b/src/lib/j2k_still_encoder.cc @@ -64,19 +64,32 @@ J2KStillEncoder::do_process_video (shared_ptr<Image> yuv, shared_ptr<Subtitle> s } string const real = _opt->frame_out_path (0, false); - for (int i = 1; i < (_film->still_duration() * 24); ++i) { + string const real_hash = _opt->hash_out_path (0, false); + for (int i = 1; i < (_film->still_duration() * _film->frames_per_second()); ++i) { + if (!boost::filesystem::exists (_opt->frame_out_path (i, false))) { - string const link = _opt->frame_out_path (i, false); + link (real, _opt->frame_out_path (i, false)); + } + + if (!boost::filesystem::exists (_opt->hash_out_path (i, false))) { + link (real_hash, _opt->hash_out_path (i, false)); + } + + frame_done (); + } +} + +void +J2KStillEncoder::link (string a, string b) const +{ #ifdef DVDOMATIC_POSIX - int const r = symlink (real.c_str(), link.c_str()); - if (r) { - throw EncodeError ("could not create symlink"); - } + int const r = symlink (a.c_str(), b.c_str()); + if (r) { + throw EncodeError ("could not create symlink"); + } #endif + #ifdef DVDOMATIC_WINDOWS - boost::filesystem::copy_file (real, link); + boost::filesystem::copy_file (a, b); #endif - } - frame_done (); - } } |
