#include "dci_metadata.h"
#include "types.h"
#include "ffmpeg_content.h"
-#include "audio_mapping.h"
+#include "playlist.h"
class DCPContentType;
class Format;
class ExternalAudioStream;
class Content;
class Player;
-class Playlist;
/** @class Film
* @brief A representation of some audio and video content, and details of
std::string file (std::string f) const;
std::string dir (std::string d) const;
- int target_audio_sample_rate () const;
-
void write_metadata () const;
libdcp::Size cropped_size (libdcp::Size) const;
bool have_dcp () const;
boost::shared_ptr<Player> player () const;
+ boost::shared_ptr<Playlist> playlist () const;
- /* Proxies for some Playlist methods */
-
- ContentList content () const;
+ OutputAudioFrame dcp_audio_frame_rate () const;
- ContentAudioFrame audio_length () const;
- int audio_channels () const;
- int audio_frame_rate () const;
- bool has_audio () const;
-
- float video_frame_rate () const;
- libdcp::Size video_size () const;
- ContentVideoFrame video_length () const;
+ OutputAudioFrame time_to_audio_frames (Time) const;
+ OutputVideoFrame time_to_video_frames (Time) const;
+ Time video_frames_to_time (OutputVideoFrame) const;
+ Time audio_frames_to_time (OutputAudioFrame) const;
- ContentVideoFrame content_length () const;
+ /* Proxies for some Playlist methods */
- std::vector<FFmpegSubtitleStream> ffmpeg_subtitle_streams () const;
- boost::optional<FFmpegSubtitleStream> ffmpeg_subtitle_stream () const;
- std::vector<FFmpegAudioStream> ffmpeg_audio_streams () const;
- boost::optional<FFmpegAudioStream> ffmpeg_audio_stream () const;
+ Playlist::RegionList regions () const;
- void set_ffmpeg_subtitle_stream (FFmpegSubtitleStream);
- void set_ffmpeg_audio_stream (FFmpegAudioStream);
+ Time length () const;
+ bool has_subtitles () const;
+ OutputVideoFrame best_dcp_video_frame_rate () const;
void set_loop (int);
int loop () const;
COLOUR_LUT,
J2K_BANDWIDTH,
DCI_METADATA,
- DCP_FRAME_RATE,
- AUDIO_MAPPING
+ DCP_VIDEO_FRAME_RATE,
};
return _dci_metadata;
}
- int dcp_frame_rate () const {
- boost::mutex::scoped_lock lm (_state_mutex);
- return _dcp_frame_rate;
- }
-
- AudioMapping audio_mapping () const {
+ /* XXX: -> "video_frame_rate" */
+ int dcp_video_frame_rate () const {
boost::mutex::scoped_lock lm (_state_mutex);
- return _audio_mapping;
+ return _dcp_video_frame_rate;
}
/* SET */
void set_trust_content_headers (bool);
void add_content (boost::shared_ptr<Content>);
void remove_content (boost::shared_ptr<Content>);
- void move_content_earlier (boost::shared_ptr<Content>);
- void move_content_later (boost::shared_ptr<Content>);
void set_dcp_content_type (DCPContentType const *);
void set_format (Format const *);
void set_crop (Crop);
void set_colour_lut (int);
void set_j2k_bandwidth (int);
void set_dci_metadata (DCIMetadata);
- void set_dcp_frame_rate (int);
+ void set_dcp_video_frame_rate (int);
void set_dci_date_today ();
- void set_audio_mapping (AudioMapping);
/** Emitted when some property has of the Film has changed */
mutable boost::signals2::signal<void (Property)> Changed;
void read_metadata ();
void playlist_changed ();
void playlist_content_changed (boost::weak_ptr<Content>, int);
- void setup_default_audio_mapping ();
std::string filename_safe_name () const;
/** Log to write to */
/** DCI naming stuff */
DCIMetadata _dci_metadata;
/** Frames per second to run our DCP at */
- int _dcp_frame_rate;
+ int _dcp_video_frame_rate;
/** The date that we should use in a DCI name */
boost::gregorian::date _dci_date;
- AudioMapping _audio_mapping;
/** true if our state has changed since we last saved it */
mutable bool _dirty;