summaryrefslogtreecommitdiff
path: root/src/lib/j2k_still_encoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2012-12-19 23:50:17 +0000
committerCarl Hetherington <cth@carlh.net>2012-12-19 23:50:17 +0000
commit2f56f38ce56b36f20d59593f56981e7ed330c484 (patch)
tree1889f6eff9545010815775671df54064bc796201 /src/lib/j2k_still_encoder.cc
parent13337c62d8c0d052ba0377af9c00fe1d940be3cc (diff)
Re-work again so that there's just one encoder; various tweaks to still-image-with-audio.
Diffstat (limited to 'src/lib/j2k_still_encoder.cc')
-rw-r--r--src/lib/j2k_still_encoder.cc95
1 files changed, 0 insertions, 95 deletions
diff --git a/src/lib/j2k_still_encoder.cc b/src/lib/j2k_still_encoder.cc
deleted file mode 100644
index 968257691..000000000
--- a/src/lib/j2k_still_encoder.cc
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- Copyright (C) 2012 Carl Hetherington <cth@carlh.net>
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
-
-/** @file src/j2k_still_encoder.cc
- * @brief An encoder which writes JPEG2000 files for a single still source image.
- */
-
-#include <sstream>
-#include <stdexcept>
-#include <iomanip>
-#include <iostream>
-#include <boost/filesystem.hpp>
-#include <sndfile.h>
-#include <openjpeg.h>
-#include "j2k_still_encoder.h"
-#include "config.h"
-#include "options.h"
-#include "exceptions.h"
-#include "dcp_video_frame.h"
-#include "filter.h"
-#include "log.h"
-#include "imagemagick_decoder.h"
-#include "film.h"
-
-using std::string;
-using std::pair;
-using boost::shared_ptr;
-
-J2KStillEncoder::J2KStillEncoder (shared_ptr<const Film> f, shared_ptr<const EncodeOptions> o)
- : Encoder (f, o)
-{
-
-}
-
-void
-J2KStillEncoder::do_process_video (shared_ptr<Image> yuv, shared_ptr<Subtitle> sub)
-{
- pair<string, string> const s = Filter::ffmpeg_strings (_film->filters());
- DCPVideoFrame* f = new DCPVideoFrame (
- yuv, sub, _opt->out_size, _opt->padding, _film->subtitle_offset(), _film->subtitle_scale(), _film->scaler(), 0, _film->frames_per_second(), s.second,
- Config::instance()->colour_lut_index(), Config::instance()->j2k_bandwidth(),
- _film->log()
- );
-
- if (!boost::filesystem::exists (_opt->frame_out_path (0, false))) {
- boost::shared_ptr<EncodedData> e = f->encode_locally ();
- e->write (_opt, 0);
- }
-
- string const real = _opt->frame_out_path (0, false);
- 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))) {
- 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 (a.c_str(), b.c_str());
- if (r) {
- throw EncodeError ("could not create symlink");
- }
-#endif
-
-#ifdef DVDOMATIC_WINDOWS
- boost::filesystem::copy_file (a, b);
-#endif
-}