X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Foptions.h;h=0d2c07fd5674117d7afff91179b25885fbe9388a;hb=37258f4ee74582feaac8b311baaeb27bf5f17ac9;hp=29b3b71cd4a91e01bc8d76494608d076d6c4452c;hpb=3ce37f08e98b9c3a238fb1c9a6184fb7fd4e5667;p=dcpomatic.git diff --git a/src/lib/options.h b/src/lib/options.h index 29b3b71cd..0d2c07fd5 100644 --- a/src/lib/options.h +++ b/src/lib/options.h @@ -17,104 +17,27 @@ */ +#ifndef DVDOMATIC_OPTIONS_H +#define DVDOMATIC_OPTIONS_H + /** @file src/options.h - * @brief Options for a transcoding operation. + * @brief Options for a decoding operation. */ -#include -#include -#include -#include -#include "util.h" - -/** @class Options - * @brief Options for a transcoding operation. - * - * These are settings which may be different, in different circumstances, for - * the same film; ie they are options for a particular transcode operation. - */ -class Options +class DecodeOptions { public: - - Options (std::string f, std::string e, std::string m) - : padding (0) - , apply_crop (true) - , decode_video_skip (0) + DecodeOptions () + : decode_video (true) , decode_audio (true) , decode_subtitles (false) - , _frame_out_path (f) - , _frame_out_extension (e) - , _multichannel_audio_out_path (m) + , video_sync (true) {} - /** @return The path to write video frames to */ - std::string frame_out_path () const { - return _frame_out_path; - } - - /** @param f Source frame index. - * @param t true to return a temporary file path, otherwise a permanent one. - * @return The path to write this video frame to. - */ - std::string frame_out_path (SourceFrame f, bool t, std::string e = "") const { - if (e.empty ()) { - e = _frame_out_extension; - } - - std::stringstream s; - s << _frame_out_path << "/"; - s.width (8); - s << std::setfill('0') << f << e; - - if (t) { - s << ".tmp"; - } - - return s.str (); - } - - /** @return Path to write multichannel audio data to */ - std::string multichannel_audio_out_path () const { - return _multichannel_audio_out_path; - } - - /** @param c Audio channel index. - * @param t true to return a temporary file path, otherwise a permanent one. - * @return The path to write this audio file to. - */ - std::string multichannel_audio_out_path (int c, bool t) const { - std::stringstream s; - s << _multichannel_audio_out_path << "/" << (c + 1) << ".wav"; - if (t) { - s << ".tmp"; - } - - return s.str (); - } - - Size out_size; ///< size of output images - float ratio; ///< ratio of the wanted output image (not considering padding) - int padding; ///< number of pixels of padding (in terms of the output size) each side of the image - bool apply_crop; ///< true to apply cropping - - /** Range of video frames to decode */ - boost::optional > video_decode_range; - /** Range of audio frames to decode */ - boost::optional > audio_decode_range; - - /** Skip frames such that we don't decode any frame where (index % decode_video_skip) != 0; e.g. - * 1 for every frame, 2 for every other frame, etc. - */ - SourceFrame decode_video_skip; - bool decode_audio; ///< true to decode audio, otherwise false + bool decode_video; + bool decode_audio; bool decode_subtitles; - -private: - /** Path of the directory to write video frames to */ - std::string _frame_out_path; - /** Extension to use for video frame files (including the leading .) */ - std::string _frame_out_extension; - /** Path of the directory to write audio files to */ - std::string _multichannel_audio_out_path; + bool video_sync; }; + +#endif