summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cscript2
-rw-r--r--src/lib/dcp_examiner.cc4
-rw-r--r--src/lib/dcp_subtitle_content.cc8
-rw-r--r--src/wx/verify_dcp_dialog.cc6
-rw-r--r--test/subtitle_font_id_test.cc12
5 files changed, 19 insertions, 13 deletions
diff --git a/cscript b/cscript
index 0127aa423..48f20995c 100644
--- a/cscript
+++ b/cscript
@@ -453,7 +453,7 @@ def dependencies(target, options):
# Use distro-provided FFmpeg on Arch
deps = []
- deps.append(('libdcp', 'v1.8.49'))
+ deps.append(('libdcp', '05d1f72e835b90b42298a33d83ae9e618f9f54f5'))
deps.append(('libsub', 'v1.6.42'))
deps.append(('leqm-nrt', '93ae9e6'))
deps.append(('rtaudio', 'f619b76'))
diff --git a/src/lib/dcp_examiner.cc b/src/lib/dcp_examiner.cc
index af9e38873..6f02f3ae5 100644
--- a/src/lib/dcp_examiner.cc
+++ b/src/lib/dcp_examiner.cc
@@ -203,8 +203,8 @@ DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content, bool tolerant)
_text_count[TextType::OPEN_SUBTITLE] = 1;
_open_subtitle_language = try_to_parse_language (i->main_subtitle()->language());
- for (auto const& font: i->main_subtitle()->asset()->font_data()) {
- reel_fonts.push_back(make_shared<dcpomatic::Font>(font.first, font.second));
+ for (auto const& font: i->main_subtitle()->asset()->fonts()) {
+ reel_fonts.push_back(make_shared<dcpomatic::Font>(font.load_id, font.data));
}
}
diff --git a/src/lib/dcp_subtitle_content.cc b/src/lib/dcp_subtitle_content.cc
index 8908d34e6..832d9bafd 100644
--- a/src/lib/dcp_subtitle_content.cc
+++ b/src/lib/dcp_subtitle_content.cc
@@ -74,11 +74,11 @@ DCPSubtitleContent::examine (shared_ptr<const Film> film, shared_ptr<Job> job)
sc->fix_empty_font_ids ();
- auto font_data = sc->font_data();
+ auto fonts = sc->fonts();
for (auto node: sc->load_font_nodes()) {
- auto data = font_data.find(node->id);
- if (data != font_data.end()) {
- only_text()->add_font(make_shared<Font>(node->id, data->second));
+ auto font = std::find_if(fonts.begin(), fonts.end(), [node](dcp::SubtitleAsset::Font const& font) { return font.load_id == node->id; });
+ if (font != fonts.end()) {
+ only_text()->add_font(make_shared<Font>(node->id, font->data));
} else {
only_text()->add_font(make_shared<Font>(node->id));
}
diff --git a/src/wx/verify_dcp_dialog.cc b/src/wx/verify_dcp_dialog.cc
index bd36334cd..81f8e2d5f 100644
--- a/src/wx/verify_dcp_dialog.cc
+++ b/src/wx/verify_dcp_dialog.cc
@@ -383,6 +383,12 @@ VerifyDCPDialog::VerifyDCPDialog (wxWindow* parent, shared_ptr<VerifyDCPJob> job
case dcp::VerificationNote::Code::INVALID_MAIN_PICTURE_ACTIVE_AREA:
add(i, _("The <MainPictureActiveArea> is either not a multiple of 2, or is bigger than an asset."));
break;
+ case dcp::VerificationNote::Code::DUPLICATE_ASSET_ID_IN_PKL:
+ add(i, _("The PKL %n has more than one asset with the same ID"));
+ break;
+ case dcp::VerificationNote::Code::DUPLICATE_ASSET_ID_IN_ASSETMAP:
+ add(i, _("The ASSETMAP %n has more than one asset with the same ID"));
+ break;
}
}
diff --git a/test/subtitle_font_id_test.cc b/test/subtitle_font_id_test.cc
index 42ed8858f..0e651f5f4 100644
--- a/test/subtitle_font_id_test.cc
+++ b/test/subtitle_font_id_test.cc
@@ -123,9 +123,9 @@ BOOST_AUTO_TEST_CASE(make_dcp_with_subs_without_font_tag)
auto check_file = subtitle_file(film);
dcp::SMPTESubtitleAsset check_asset(check_file);
BOOST_CHECK_EQUAL(check_asset.load_font_nodes().size(), 1U);
- auto check_font_data = check_asset.font_data();
- BOOST_CHECK_EQUAL(check_font_data.size(), 1U);
- BOOST_CHECK(check_font_data.begin()->second == dcp::ArrayData(default_font_file()));
+ auto check_fonts = check_asset.fonts();
+ BOOST_CHECK_EQUAL(check_fonts.size(), 1U);
+ BOOST_CHECK(check_fonts[0].data == dcp::ArrayData(default_font_file()));
}
@@ -182,8 +182,8 @@ BOOST_AUTO_TEST_CASE(make_dcp_with_subs_in_dcp_without_font_tag)
auto check_file = subtitle_file(film);
dcp::SMPTESubtitleAsset check_asset(check_file);
BOOST_CHECK_EQUAL(check_asset.load_font_nodes().size(), 1U);
- auto check_font_data = check_asset.font_data();
- BOOST_CHECK_EQUAL(check_font_data.size(), 1U);
- BOOST_CHECK(check_font_data.begin()->second == dcp::ArrayData(default_font_file()));
+ auto check_fonts = check_asset.fonts();
+ BOOST_CHECK_EQUAL(check_fonts.size(), 1U);
+ BOOST_CHECK(check_fonts[0].data == dcp::ArrayData(default_font_file()));
}