Offer has_non_zero_entry_point() from DCPExaminer.
authorCarl Hetherington <cth@carlh.net>
Wed, 6 Mar 2024 00:17:05 +0000 (01:17 +0100)
committerCarl Hetherington <cth@carlh.net>
Mon, 11 Mar 2024 08:25:26 +0000 (09:25 +0100)
src/lib/dcp_examiner.cc
src/lib/dcp_examiner.h

index 22e9f9b506b2333ab02f180b9754af06315e5dac..3515f34c287e749970809cbd3f750d2f8d8da40c 100644 (file)
@@ -196,6 +196,9 @@ DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content, bool tolerant)
                }
 
                if (auto sub = reel->main_subtitle()) {
+                       if (sub->entry_point().get_value_or(0) != 0) {
+                               _has_non_zero_entry_point[TextType::OPEN_SUBTITLE] = true;
+                       }
                        if (!sub->asset_ref().resolved()) {
                                LOG_GENERAL("Main subtitle %1 of reel %2 is missing", sub->id(), reel->id());
                                _needs_assets = true;
@@ -225,6 +228,9 @@ DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content, bool tolerant)
                }
 
                for (auto ccap: reel->closed_captions()) {
+                       if (ccap->entry_point().get_value_or(0) != 0) {
+                               _has_non_zero_entry_point[TextType::CLOSED_CAPTION] = true;
+                       }
                        if (!ccap->asset_ref().resolved()) {
                                LOG_GENERAL("Closed caption %1 of reel %2 is missing", ccap->id(), reel->id());
                                _needs_assets = true;
index 04fa31ea4281c611e16ed237616aff749d76e328..425552632ced7c86eca03829b82ec0557f9797db 100644 (file)
@@ -171,6 +171,10 @@ public:
                return _atmos_edit_rate;
        }
 
+       EnumIndexedVector<bool, TextType> has_non_zero_entry_point() const {
+               return _has_non_zero_entry_point;
+       }
+
        void add_fonts(std::shared_ptr<TextContent> content);
 
 private:
@@ -206,6 +210,7 @@ private:
        bool _has_atmos = false;
        Frame _atmos_length = 0;
        dcp::Fraction _atmos_edit_rate;
+       EnumIndexedVector<bool, TextType> _has_non_zero_entry_point;
 
        struct Font
        {