diff options
| author | Carl Hetherington <cth@carlh.net> | 2023-01-01 22:41:57 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2023-01-01 23:15:31 +0100 |
| commit | 391a2852b6e73792882df5ea0d65238d840ab894 (patch) | |
| tree | 6171768f453cf0f1e698b6631822052adcd0818c | |
| parent | afbe4ce5dd551149f931c41bf27c22ef1f55155f (diff) | |
Bump libdcp for fixes to font handling in combine operations.multi-fonts-in-pkl
| -rw-r--r-- | cscript | 2 | ||||
| -rw-r--r-- | src/lib/dcp_examiner.cc | 4 | ||||
| -rw-r--r-- | src/lib/dcp_subtitle_content.cc | 8 | ||||
| -rw-r--r-- | src/wx/verify_dcp_dialog.cc | 6 | ||||
| -rw-r--r-- | test/subtitle_font_id_test.cc | 12 |
5 files changed, 19 insertions, 13 deletions
@@ -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())); } |
