+ bool can_be_played () const override;
+ bool needs_kdm () const;
+ bool needs_assets () const;
+
+ void set_reference_video (bool r);
+
+ bool reference_video () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _reference_video;
+ }
+
+ bool can_reference_video (std::shared_ptr<const Film> film, std::string &) const;
+
+ void set_reference_audio (bool r);
+
+ bool reference_audio () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _reference_audio;
+ }
+
+ bool can_reference_audio (std::shared_ptr<const Film> film, std::string &) const;
+
+ void set_reference_text (TextType type, bool r);
+
+ /** @param type Original type of texts in the DCP.
+ * @return true if these texts are to be referenced.
+ */
+ bool reference_text (TextType type) const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _reference_text[type];
+ }
+
+ bool can_reference_text (std::shared_ptr<const Film> film, TextType type, std::string &) const;
+
+ void set_cpl (std::string id);
+
+ boost::optional<std::string> cpl () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _cpl;
+ }
+
+ std::string name () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _name;
+ }
+
+ bool three_d () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _three_d;
+ }
+
+ boost::optional<dcp::ContentKind> content_kind () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _content_kind;
+ }
+
+ dcp::Standard standard () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ DCPOMATIC_ASSERT (_standard);
+ return _standard.get ();
+ }
+
+ std::map<dcp::Marker, dcpomatic::ContentTime> markers () const {
+ return _markers;
+ }
+
+ bool kdm_timing_window_valid () const;
+
+ Resolution resolution () const;
+
+ std::vector<dcp::Rating> ratings () const {
+ return _ratings;
+ }
+
+ std::vector<std::string> content_versions () const {
+ return _content_versions;
+ }
+
+ void check_font_ids();
+