Note that newer libsub version is required.
[dcpomatic.git] / src / lib / film.h
index 8aeae8e4ed37ed97b3022e188d518f1027ed3f4b..43a41ad45d5a43fbeaf92accdea2595e9155e6db 100644 (file)
@@ -37,6 +37,7 @@
 #include "named_channel.h"
 #include "resolution.h"
 #include "signaller.h"
+#include "territory_type.h"
 #include "transcode_job.h"
 #include "types.h"
 #include "util.h"
@@ -63,20 +64,21 @@ namespace dcpomatic {
        class Screen;
 }
 
+class AudioContent;
+class AudioProcessor;
+class Content;
 class DCPContentType;
+class Film;
+class Job;
 class Log;
-class Content;
 class Playlist;
-class AudioContent;
-class AudioProcessor;
 class Ratio;
-class Job;
-class Film;
+struct atmos_encrypted_passthrough_test;
 struct isdcf_name_test;
 struct isdcf_name_with_atmos;
 struct isdcf_name_with_ccap;
+struct ov_subs_in_vf_name;
 struct recover_test_2d_encrypted;
-struct atmos_encrypted_passthrough_test;
 
 
 class InfoFileHandle
@@ -191,8 +193,10 @@ public:
                return _audio_language;
        }
 
-       /** @return pair containing the main subtitle language, and additional languages */
-       std::pair<boost::optional<dcp::LanguageTag>, std::vector<dcp::LanguageTag>> subtitle_languages () const;
+       /** @param burnt_in If non-null, filled with true if all subtitles are burnt in, otherwise false.
+        *  @return pair containing the main subtitle language, and additional languages
+        */
+       std::pair<boost::optional<dcp::LanguageTag>, std::vector<dcp::LanguageTag>> subtitle_languages(bool* burnt_in = nullptr) const;
        /** @return all closed caption languages in the film */
        std::vector<dcp::LanguageTag> closed_caption_languages() const;
 
@@ -314,6 +318,10 @@ public:
                return _name_language;
        }
 
+       TerritoryType territory_type() const {
+               return _territory_type;
+       }
+
        boost::optional<dcp::LanguageTag::RegionSubtag> release_territory () const {
                return _release_territory;
        }
@@ -407,6 +415,7 @@ public:
        void set_ratings (std::vector<dcp::Rating> r);
        void set_content_versions (std::vector<std::string> v);
        void set_name_language (dcp::LanguageTag lang);
+       void set_territory_type(TerritoryType type);
        void set_release_territory (boost::optional<dcp::LanguageTag::RegionSubtag> region = boost::none);
        void set_sign_language_video_language (boost::optional<dcp::LanguageTag> tag);
        void set_version_number (int v);
@@ -451,6 +460,7 @@ private:
        friend struct ::isdcf_name_with_ccap;
        friend struct ::recover_test_2d_encrypted;
        friend struct ::atmos_encrypted_passthrough_test;
+       friend struct ::ov_subs_in_vf_name;
        template <class, class> friend class ChangeSignalDespatcher;
 
        boost::filesystem::path info_file (dcpomatic::DCPTimePeriod p) const;
@@ -523,6 +533,7 @@ private:
        std::vector<dcp::Rating> _ratings;
        std::vector<std::string> _content_versions;
        dcp::LanguageTag _name_language;
+       TerritoryType _territory_type = TerritoryType::SPECIFIC;
        boost::optional<dcp::LanguageTag::RegionSubtag> _release_territory;
        boost::optional<dcp::LanguageTag> _sign_language_video_language;
        int _version_number;