+ boost::optional<dcp::LanguageTag> audio_language () const {
+ return _audio_language;
+ }
+
+ /** @param type TEXT_OPEN_SUBTITLE or TEXT_CLOSED_CAPTION.
+ * @return the number of "streams" of this type in the DCP.
+ * Reels do not affect the return value of this method: if a DCP
+ * has any subtitles, type=TEXT_OPEN_SUBTITLE will return 1.
+ */
+ int text_count (TextType type) const {
+ return _text_count[type];
+ }
+
+ boost::optional<dcp::LanguageTag> open_subtitle_language () const {
+ return _open_subtitle_language;
+ }
+
+ DCPTextTrack dcp_text_track (int i) const {
+ DCPOMATIC_ASSERT (i >= 0 && i < static_cast<int>(_dcp_text_tracks.size()));
+ return _dcp_text_tracks[i];
+ }
+
+ bool kdm_valid () const {
+ return _kdm_valid;
+ }
+
+ boost::optional<dcp::Standard> standard () const {
+ return _standard;
+ }
+
+ bool three_d () const {
+ return _three_d;
+ }
+
+ dcp::ContentKind content_kind () const {
+ DCPOMATIC_ASSERT(_content_kind);
+ return *_content_kind;
+ }
+
+ std::string cpl () const {
+ return _cpl;
+ }
+
+ std::list<int64_t> reel_lengths () const {
+ return _reel_lengths;
+ }
+
+ std::map<dcp::Marker, dcp::Time> markers () const {
+ return _markers;
+ }
+
+ std::vector<dcp::Rating> ratings () const {
+ return _ratings;
+ }
+
+ std::vector<std::string> content_versions () const {
+ return _content_versions;
+ }
+
+ bool has_atmos () const {
+ return _has_atmos;
+ }
+
+ Frame atmos_length () const {
+ return _atmos_length;
+ }
+
+ dcp::Fraction atmos_edit_rate () const {
+ return _atmos_edit_rate;
+ }
+
+ /** @return fonts in each reel */
+ std::vector<std::vector<std::shared_ptr<dcpomatic::Font>>> fonts() const {
+ return _fonts;
+ }
+