Various work on range setting.
[dcpomatic.git] / src / lib / j2k_still_encoder.cc
index a241dd6e35165468029afe99e00896b770cf254c..aab686417ba6de0fb14920afa8e43a1deea51d92 100644 (file)
 #include <openjpeg.h>
 #include "j2k_still_encoder.h"
 #include "config.h"
-#include "film_state.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 namespace std;
-using namespace boost;
+using std::string;
+using std::pair;
+using boost::shared_ptr;
 
-J2KStillEncoder::J2KStillEncoder (shared_ptr<const FilmState> s, shared_ptr<const Options> o, Log* l)
-       : Encoder (s, o, l)
+J2KStillEncoder::J2KStillEncoder (shared_ptr<const Film> f, shared_ptr<const Options> o)
+       : Encoder (f, o)
 {
        
 }
 
 void
-J2KStillEncoder::process_video (shared_ptr<Image> yuv, int frame, shared_ptr<Subtitle> sub)
+J2KStillEncoder::process_video (shared_ptr<const Image> yuv, SourceFrame frame, shared_ptr<Subtitle> sub)
 {
-       pair<string, string> const s = Filter::ffmpeg_strings (_fs->filters);
+       pair<string, string> const s = Filter::ffmpeg_strings (_film->filters());
        DCPVideoFrame* f = new DCPVideoFrame (
-               yuv, sub, _opt->out_size, _opt->padding, _fs->scaler, 0, _fs->frames_per_second, s.second,
+               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(),
-               _log
+               _film->log()
                );
 
        if (!boost::filesystem::exists (_opt->frame_out_path (0, false))) {
@@ -63,7 +64,7 @@ J2KStillEncoder::process_video (shared_ptr<Image> yuv, int frame, shared_ptr<Sub
        }
 
        string const real = _opt->frame_out_path (0, false);
-       for (int i = 1; i < (_fs->still_duration * ImageMagickDecoder::static_frames_per_second()); ++i) {
+       for (int i = 1; i < (_film->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);
 #ifdef DVDOMATIC_POSIX                 
@@ -73,7 +74,7 @@ J2KStillEncoder::process_video (shared_ptr<Image> yuv, int frame, shared_ptr<Sub
                        }
 #endif
 #ifdef DVDOMATIC_WINDOWS
-                       filesystem::copy_file (real, link);
+                       boost::filesystem::copy_file (real, link);
 #endif                 
                }
                frame_done (0);