#include "types.h"
#include "isdcf_metadata.h"
#include "frame_rate_change.h"
+#include "signaller.h"
#include "ratio.h"
#include <dcp/key.h>
#include <dcp/encrypted_kdm.h>
class Playlist;
class AudioContent;
class Screen;
+class AudioProcessor;
+class AudioMapping;
struct isdcf_name_test;
/** @class Film
*
* The content of a Film is held in a Playlist (created and managed by the Film).
*/
-class Film : public boost::enable_shared_from_this<Film>, public boost::noncopyable
+class Film : public boost::enable_shared_from_this<Film>, public Signaller, public boost::noncopyable
{
public:
Film (boost::filesystem::path, bool log = true);
boost::filesystem::path info_file () const;
boost::filesystem::path j2c_path (int, Eyes, bool) const;
- boost::filesystem::path internal_video_mxf_dir () const;
- boost::filesystem::path internal_video_mxf_filename () const;
- boost::filesystem::path audio_analysis_dir () const;
+ boost::filesystem::path internal_video_asset_dir () const;
+ boost::filesystem::path internal_video_asset_filename () const;
- boost::filesystem::path video_mxf_filename () const;
- boost::filesystem::path audio_mxf_filename () const;
- boost::filesystem::path subtitle_xml_filename () const;
+ boost::filesystem::path audio_analysis_path (boost::shared_ptr<const Playlist>) const;
void send_dcp_to_tms ();
void make_dcp ();
int audio_frame_rate () const;
uint64_t required_disk_space () const;
- bool should_be_enough_disk_space (double &, double &) const;
+ bool should_be_enough_disk_space (double& required, double& available, bool& can_hard_link) const;
/* Proxies for some Playlist methods */
std::string subtitle_language () const;
+ void make_audio_mapping_default (AudioMapping & mapping) const;
+ std::vector<std::string> audio_output_names () const;
+
/** Identifiers for the parts of our state;
used for signalling changes.
*/
INTEROP,
/** The setting of _burn_subtitles has changed */
BURN_SUBTITLES,
+ AUDIO_PROCESSOR,
};
bool burn_subtitles () const {
return _burn_subtitles;
}
+
+ AudioProcessor const * audio_processor () const {
+ return _audio_processor;
+ }
/* SET */
void set_sequence_video (bool);
void set_interop (bool);
void set_burn_subtitles (bool);
+ void set_audio_processor (AudioProcessor const * processor);
/** Emitted when some property has of the Film has changed */
mutable boost::signals2::signal<void (Property)> Changed;
Resolution _resolution;
bool _signed;
bool _encrypted;
+ dcp::Key _key;
/** bandwidth for J2K files in bits per second */
int _j2k_bandwidth;
/** ISDCF naming stuff */
bool _sequence_video;
bool _interop;
bool _burn_subtitles;
- dcp::Key _key;
+ AudioProcessor const * _audio_processor;
int _state_version;