- void write_metadata () const;
-
- /** @return complete path to directory containing the film metadata */
- std::string directory () const {
- return _state.directory;
- }
-
- std::string content () const;
- ContentType content_type () const;
-
- /** @return name for DVD-o-matic */
- std::string name () const {
- return _state.name;
- }
-
- /** @return name to give the DCP */
- std::string dcp_name () const {
- return _state.dcp_name ();
- }
-
- /** @return true to use a DCI-spec name for the DCP */
- bool use_dci_name () const {
- return _state.use_dci_name;
- }
-
- /** @return number of pixels to crop from the sides of the original picture */
- Crop crop () const {
- return _state.crop;
- }
-
- /** @return the format to present this film in (flat, scope, etc.) */
- Format const * format () const {
- return _state.format;
- }
-
- /** @return video filters that should be used when generating DCPs */
- std::vector<Filter const *> filters () const {
- return _state.filters;
- }
-
- /** @return scaler algorithm to use */
- Scaler const * scaler () const {
- return _state.scaler;
- }
-
- /** @return number of frames to put in the DCP, or 0 for all */
- int dcp_frames () const {
- return _state.dcp_frames;
- }
-
- /** @return what to do with the end of an encode when trimming */
- TrimAction dcp_trim_action () const {
- return _state.dcp_trim_action;
- }
-
- /** @return true to create an A/B comparison DCP, where the left half of the image
- * is the video without any filters or post-processing, and the right half
- * has the specified filters and post-processing.
- */
- bool dcp_ab () const {
- return _state.dcp_ab;
- }
-
- /** @return gain that should be applied to the audio when making a DCP
- (in dB).
- */
- float audio_gain () const {
- return _state.audio_gain;
- }
-
- /** @return delay to apply to audio (positive moves audio later) in milliseconds */
- int audio_delay () const {
- return _state.audio_delay;
- }
-
- /** @return duration to make still-sourced films (in seconds) */
- int still_duration () const {
- return _state.still_duration;
- }
-
- /** @return true to encode DCP with subtitles, if they are available */
- bool with_subtitles () const {
- return _state.with_subtitles;
- }
-
- /** @return offset to move subtitles by, in source pixels; +ve moves
- them down the image, -ve moves them up.
- */
- int subtitle_offset () const {
- return _state.subtitle_offset;
- }
-
- /** @return scaling factor to apply to subtitle images */
- float subtitle_scale () const {
- return _state.subtitle_scale;
- }
-
- void set_filters (std::vector<Filter const *> const &);
-
- void set_scaler (Scaler const *);
-
- /** @return the type of content that this Film represents (feature, trailer etc.) */
- DCPContentType const * dcp_content_type () {
- return _state.dcp_content_type;
- }
-
- std::vector<Stream> audio_streams () const {
- return _state.audio_streams;
- }
-
- int audio_stream () const {
- return _state.audio_stream;
- }
-
- std::vector<Stream> subtitle_streams () const {
- return _state.subtitle_streams;
- }
-
- int subtitle_stream () const {
- return _state.subtitle_stream;
- }
-
- void set_dcp_frames (int);
- void set_dcp_trim_action (TrimAction);
- void set_dcp_ab (bool);
-
- void set_name (std::string);
- void set_use_dci_name (bool);
- void set_content (std::string);
- void set_top_crop (int);
- void set_bottom_crop (int);
- void set_left_crop (int);
- void set_right_crop (int);
- void set_format (Format const *);
- void set_dcp_content_type (DCPContentType const *);
- void set_audio_gain (float);
- void set_audio_delay (int);
- void set_still_duration (int);
- void set_with_subtitles (bool);
- void set_subtitle_offset (int);
- void set_subtitle_scale (float);
- void set_audio_language (std::string);
- void set_subtitle_language (std::string);
- void set_territory (std::string);
- void set_rating (std::string);
- void set_studio (std::string);
- void set_facility (std::string);
- void set_package_type (std::string);
- void set_audio_stream (int id);
- void set_subtitle_stream (int id);
-
- /** @return size, in pixels, of the source (ignoring cropping) */
- Size size () const {
- return _state.size;
- }
-
- /** @return length, in video frames */
- int length () const {
- return _state.length;
- }
-
- /** @return nnumber of video frames per second */
- float frames_per_second () const {
- return _state.frames_per_second;
- }
-
- /** @return number of audio channels */
- int audio_channels () const {
- return _state.audio_channels;
- }
-
- /** @return audio sample rate, in Hz */
- int audio_sample_rate () const {
- return _state.audio_sample_rate;
- }
-
- /** @return format of the audio samples */
- AVSampleFormat audio_sample_format () const {
- return _state.audio_sample_format;
- }
-
- bool has_subtitles () const {
- return _state.has_subtitles;
- }
-
- std::string audio_language () const {
- return _state.audio_language;
- }
-
- std::string subtitle_language () const {
- return _state.subtitle_language;
- }
-
- std::string territory () const {
- return _state.territory;
- }
-
- std::string rating () const {
- return _state.rating;
- }
-
- std::string studio () const {
- return _state.studio;
- }
-
- std::string facility () const {
- return _state.facility;
- }
-
- std::string package_type () const {
- return _state.package_type;
- }
-