X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Ffilm.h;h=5255e8355a7e1e6c9a59a6652bf509b37ce5389a;hb=ca44e3542214050de6cb8bbb223138765ac4bdb7;hp=e0c5cb2f702f6c2d4baa62d7ba4eb2e92515223e;hpb=8d9e73b753ed51067d93aa377bb24400ff22936e;p=dcpomatic.git diff --git a/src/lib/film.h b/src/lib/film.h index e0c5cb2f7..5255e8355 100644 --- a/src/lib/film.h +++ b/src/lib/film.h @@ -29,7 +29,6 @@ #include "change_signaller.h" #include "dcp_text_track.h" #include "frame_rate_change.h" -#include "isdcf_metadata.h" #include "signaller.h" #include "types.h" #include "util.h" @@ -94,12 +93,15 @@ private: * * The content of a Film is held in a Playlist (created and managed by the Film). */ -class Film : public std::enable_shared_from_this, public Signaller, public boost::noncopyable +class Film : public std::enable_shared_from_this, public Signaller { public: explicit Film (boost::optional dir); ~Film (); + Film (Film const&) = delete; + Film& operator= (Film const&) = delete; + std::shared_ptr info_file_handle (dcpomatic::DCPTimePeriod period, bool read) const; boost::filesystem::path j2c_path (int, Frame, Eyes, bool) const; boost::filesystem::path internal_video_asset_dir () const; @@ -151,6 +153,8 @@ public: uint64_t required_disk_space () const; bool should_be_enough_disk_space (double& required, double& available, bool& can_hard_link) const; + bool has_sign_language_video_channel () const; + /* Proxies for some Playlist methods */ ContentList content () const; @@ -184,7 +188,12 @@ public: std::list reels () const; std::list mapped_audio_channels () const; - std::vector audio_languages () const; + + boost::optional audio_language () const { + return _audio_language; + } + + /** @return pair containing the main subtitle language, and additional languages */ std::pair, std::vector> subtitle_languages () const; std::string content_summary (dcpomatic::DCPTimePeriod period) const; @@ -217,7 +226,6 @@ public: RESOLUTION, ENCRYPTED, J2K_BANDWIDTH, - ISDCF_METADATA, VIDEO_FRAME_RATE, AUDIO_CHANNELS, /** The setting of _three_d has changed */ @@ -234,6 +242,7 @@ public: NAME_LANGUAGE, AUDIO_LANGUAGE, RELEASE_TERRITORY, + SIGN_LANGUAGE_VIDEO_LANGUAGE, VERSION_NUMBER, STATUS, CHAIN, @@ -286,10 +295,6 @@ public: return _j2k_bandwidth; } - ISDCFMetadata isdcf_metadata () const { - return _isdcf_metadata; - } - /** @return The frame rate of the DCP */ int video_frame_rate () const { return _video_frame_rate; @@ -350,14 +355,14 @@ public: return _name_language; } - dcp::LanguageTag audio_language () const { - return _audio_language; - } - boost::optional release_territory () const { return _release_territory; } + boost::optional sign_language_video_language () const { + return _sign_language_video_language; + } + int version_number () const { return _version_number; } @@ -402,6 +407,7 @@ public: return _luminance; } + /* SET */ void set_directory (boost::filesystem::path); @@ -418,7 +424,6 @@ public: void set_resolution (Resolution, bool user_explicit = true); void set_encrypted (bool); void set_j2k_bandwidth (int); - void set_isdcf_metadata (ISDCFMetadata); void set_video_frame_rate (int rate, bool user_explicit = false); void set_audio_channels (int); void set_three_d (bool); @@ -435,8 +440,8 @@ public: void set_ratings (std::vector r); void set_content_versions (std::vector v); void set_name_language (dcp::LanguageTag lang); - void set_audio_language (dcp::LanguageTag lang); void set_release_territory (boost::optional region = boost::none); + void set_sign_language_video_language (boost::optional tag); void set_version_number (int v); void set_status (dcp::Status s); void set_chain (boost::optional c = boost::none); @@ -448,6 +453,7 @@ public: void set_two_d_version_of_three_d (bool t); void set_distributor (boost::optional d = boost::none); void set_luminance (boost::optional l = boost::none); + void set_audio_language (boost::optional language); void add_ffoc_lfoc (Markers& markers) const; @@ -489,8 +495,6 @@ private: void check_settings_consistency (); void maybe_set_container_and_resolution (); - static std::string const metadata_file; - /** Log to write to */ std::shared_ptr _log; std::shared_ptr _playlist; @@ -518,8 +522,6 @@ private: std::string _context_id; /** bandwidth for J2K files in bits per second */ int _j2k_bandwidth; - /** ISDCF naming stuff */ - ISDCFMetadata _isdcf_metadata; /** Frames per second to run our DCP at */ int _video_frame_rate; /** The date that we should use in a ISDCF name */ @@ -545,8 +547,8 @@ private: std::vector _ratings; std::vector _content_versions; dcp::LanguageTag _name_language; - dcp::LanguageTag _audio_language; boost::optional _release_territory; + boost::optional _sign_language_video_language; int _version_number; dcp::Status _status; boost::optional _chain; @@ -558,6 +560,7 @@ private: bool _red_band = false; bool _two_d_version_of_three_d = false; boost::optional _luminance; + boost::optional _audio_language; int _state_version;