libdcp updates for multiple CCAPs.
authorCarl Hetherington <cth@carlh.net>
Wed, 22 Aug 2018 15:21:57 +0000 (16:21 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 22 Aug 2018 15:21:57 +0000 (16:21 +0100)
cscript
src/lib/dcp_decoder.cc
src/lib/dcp_examiner.cc

diff --git a/cscript b/cscript
index 242d41e4a2683a13b99c2c843904c361319dafe7..f1e530e80018e5c5862ad533b8ea257b42c69192 100644 (file)
--- a/cscript
+++ b/cscript
@@ -328,8 +328,8 @@ def dependencies(target):
     else:
         deps = [('ffmpeg-cdist', '27f25fb', ffmpeg_options)]
 
-    deps.append(('libdcp', '348aaa6'))
-    deps.append(('libsub', '75d9785'))
+    deps.append(('libdcp', '9f75a44'))
+    deps.append(('libsub', '920b428'))
     deps.append(('rtaudio-cdist', '739969e'))
 
     return deps
index b9cb66a607c0bdd10c6c53a20596c42d93b3e3d8..f4da18649e2a01bae620ed791e5020f499c53df2 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2014-2016 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2014-2018 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -201,10 +201,10 @@ DCPDecoder::pass_texts (ContentTime next)
                        );
                ++decoder;
        }
-       if ((*_reel)->closed_caption()) {
+       BOOST_FOREACH (shared_ptr<dcp::ReelClosedCaptionAsset> i, (*_reel)->closed_captions()) {
                DCPOMATIC_ASSERT (decoder != text.end ());
                pass_texts (
-                       next, (*_reel)->closed_caption()->asset(), _dcp_content->reference_text(TEXT_CLOSED_CAPTION), (*_reel)->closed_caption()->entry_point(), *decoder
+                       next, i->asset(), _dcp_content->reference_text(TEXT_CLOSED_CAPTION), i->entry_point(), *decoder
                        );
                ++decoder;
        }
index 4b9238e5b3d1c7f3758c833fc615a0d76d780bc0..1785669dd56ceefdf93f33cbf29465ea49eaad1c 100644 (file)
@@ -172,8 +172,8 @@ DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content)
                        _has_text[TEXT_OPEN_SUBTITLE] = true;
                }
 
-               if (i->closed_caption ()) {
-                       if (!i->closed_caption()->asset_ref().resolved()) {
+               BOOST_FOREACH (shared_ptr<dcp::ReelClosedCaptionAsset> j, i->closed_captions()) {
+                       if (!j->asset_ref().resolved()) {
                                /* We are missing this asset so we can't continue; examination will be repeated later */
                                _needs_assets = true;
                                return;
@@ -188,8 +188,8 @@ DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content)
                        _reel_lengths.push_back (i->main_sound()->duration());
                } else if (i->main_subtitle()) {
                        _reel_lengths.push_back (i->main_subtitle()->duration());
-               } else if (i->closed_caption()) {
-                       _reel_lengths.push_back (i->closed_caption()->duration());
+               } else if (!i->closed_captions().empty()) {
+                       _reel_lengths.push_back (i->closed_captions().front()->duration());
                }
        }