X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fimagemagick_encoder.cc;h=480dec8bc741e9305b270567e6c5b067071ea829;hb=d95961e37e03f1060aa16cc0d6b0fe2fdbd4844d;hp=d0feb18934e7b8b8d8ff27f661af2a061c072a75;hpb=e946a66554185459043af2a8bdae575e255c743d;p=dcpomatic.git diff --git a/src/lib/imagemagick_encoder.cc b/src/lib/imagemagick_encoder.cc index d0feb1893..480dec8bc 100644 --- a/src/lib/imagemagick_encoder.cc +++ b/src/lib/imagemagick_encoder.cc @@ -31,62 +31,61 @@ #include #include "imagemagick_encoder.h" #include "film.h" -#include "film_state.h" #include "options.h" #include "exceptions.h" #include "image.h" #include "subtitle.h" -using namespace std; -using namespace boost; +using std::string; +using std::ofstream; +using boost::shared_ptr; -/** @param s FilmState of the film that we are encoding. +/** @param f Film that we are encoding. * @param o Options. - * @param l Log. */ -ImageMagickEncoder::ImageMagickEncoder (shared_ptr s, shared_ptr o, Log* l) - : Encoder (s, o, l) +ImageMagickEncoder::ImageMagickEncoder (shared_ptr f, shared_ptr o) + : Encoder (f, o) { } void -ImageMagickEncoder::process_video (shared_ptr image, int frame, shared_ptr sub) +ImageMagickEncoder::do_process_video (shared_ptr image, shared_ptr sub) { - shared_ptr scaled = image->scale_and_convert_to_rgb (_opt->out_size, _opt->padding, _fs->scaler); + shared_ptr scaled = image->scale_and_convert_to_rgb (_opt->out_size, _opt->padding, _film->scaler()); shared_ptr compact (new CompactImage (scaled)); - string tmp_file = _opt->frame_out_path (frame, true); + string tmp_file = _opt->frame_out_path (_video_frame, true); Magick::Image thumb (compact->size().width, compact->size().height, "RGB", MagickCore::CharPixel, compact->data()[0]); thumb.magick ("PNG"); thumb.write (tmp_file); - filesystem::rename (tmp_file, _opt->frame_out_path (frame, false)); + boost::filesystem::rename (tmp_file, _opt->frame_out_path (_video_frame, false)); if (sub) { - float const x_scale = float (_opt->out_size.width) / _fs->size.width; - float const y_scale = float (_opt->out_size.height) / _fs->size.height; + float const x_scale = float (_opt->out_size.width) / _film->size().width; + float const y_scale = float (_opt->out_size.height) / _film->size().height; - string tmp_metadata_file = _opt->frame_out_path (frame, false, ".sub"); + string tmp_metadata_file = _opt->frame_out_path (_video_frame, false, ".sub"); ofstream metadata (tmp_metadata_file.c_str ()); Size new_size = sub->image()->size (); new_size.width *= x_scale; new_size.height *= y_scale; - shared_ptr scaled = sub->image()->scale (new_size, _fs->scaler); + shared_ptr scaled = sub->image()->scale (new_size, _film->scaler()); shared_ptr compact (new CompactImage (scaled)); - string tmp_sub_file = _opt->frame_out_path (frame, true, ".sub.png"); + string tmp_sub_file = _opt->frame_out_path (_video_frame, true, ".sub.png"); Magick::Image sub_thumb (compact->size().width, compact->size().height, "RGBA", MagickCore::CharPixel, compact->data()[0]); sub_thumb.magick ("PNG"); sub_thumb.write (tmp_sub_file); - filesystem::rename (tmp_sub_file, _opt->frame_out_path (frame, false, ".sub.png")); + boost::filesystem::rename (tmp_sub_file, _opt->frame_out_path (_video_frame, false, ".sub.png")); metadata << "x " << sub->position().x << "\n" << "y " << sub->position().y << "\n"; metadata.close (); - filesystem::rename (tmp_metadata_file, _opt->frame_out_path (frame, false, ".sub.png")); + boost::filesystem::rename (tmp_metadata_file, _opt->frame_out_path (_video_frame, false, ".sub")); } - frame_done (frame); + frame_done (); }