X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fj2k_still_encoder.cc;h=d218d08fee0ec62ec4a2e54001a7f9448283b1dc;hb=f29219ed06d27dcae5e18b8b9c52dcf24554f188;hp=f68bc589074617559cec7f2abcb4227c5df4bd70;hpb=bb767c7e338414beee132af3e96829c1448e214b;p=dcpomatic.git diff --git a/src/lib/j2k_still_encoder.cc b/src/lib/j2k_still_encoder.cc index f68bc5890..d218d08fe 100644 --- a/src/lib/j2k_still_encoder.cc +++ b/src/lib/j2k_still_encoder.cc @@ -17,8 +17,8 @@ */ -/** @file src/j2k_wav_encoder.cc - * @brief An encoder which writes JPEG2000 and WAV files. +/** @file src/j2k_still_encoder.cc + * @brief An encoder which writes JPEG2000 files for a single still source image. */ #include @@ -57,17 +57,25 @@ J2KStillEncoder::process_video (shared_ptr yuv, int frame) _log ); - if (!boost::filesystem::exists (_opt->frame_out_path (1, false))) { + if (!boost::filesystem::exists (_opt->frame_out_path (0, false))) { boost::shared_ptr e = f->encode_locally (); - e->write (_opt, 1); + e->write (_opt, 0); } - string const real = _opt->frame_out_path (1, false); - for (int i = 2; i <= (_fs->still_duration * ImageMagickDecoder::static_frames_per_second()); ++i) { + string const real = _opt->frame_out_path (0, false); + for (int i = 1; i < (_fs->still_duration * ImageMagickDecoder::static_frames_per_second()); ++i) { if (!boost::filesystem::exists (_opt->frame_out_path (i, false))) { string const link = _opt->frame_out_path (i, false); - symlink (real.c_str(), link.c_str()); +#ifdef DVDOMATIC_POSIX + int const r = symlink (real.c_str(), link.c_str()); + if (r) { + throw EncodeError ("could not create symlink"); + } +#endif +#ifdef DVDOMATIC_WINDOWS + filesystem::copy_file (real, link); +#endif } - frame_done (); + frame_done (0); } }