summaryrefslogtreecommitdiff
path: root/src/lib/j2k_still_encoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2012-12-17 23:36:18 +0000
committerCarl Hetherington <cth@carlh.net>2012-12-17 23:36:18 +0000
commit8dd455ba867122056e2093e259a9a045aeeea451 (patch)
tree1e4ca9f9a413fc34acace48b28297fd3e4d26982 /src/lib/j2k_still_encoder.cc
parentc421f6a5551f0755737f57fbeac6a0157599e0e8 (diff)
Various fixes to still-image mode.
Diffstat (limited to 'src/lib/j2k_still_encoder.cc')
-rw-r--r--src/lib/j2k_still_encoder.cc33
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 ();
- }
}