From: Carl Hetherington Date: Sat, 3 Sep 2022 12:49:25 +0000 (+0200) Subject: Bump libdcp for better ContentKind support, and libsub X-Git-Tag: v2.16.24~3 X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=0a5d3c77247d3e68a144bfc077c29fbcf3819735 Bump libdcp for better ContentKind support, and libsub for fixes to \c tags in SSA files. --- diff --git a/cscript b/cscript index 475a67aae..55d2759e1 100644 --- a/cscript +++ b/cscript @@ -427,8 +427,8 @@ def dependencies(target, options): # Use distro-provided FFmpeg on Arch deps = [] - deps.append(('libdcp', 'v1.8.25')) - deps.append(('libsub', 'v1.6.28')) + deps.append(('libdcp', 'v1.8.26')) + deps.append(('libsub', 'v1.6.29')) deps.append(('leqm-nrt', '93ae9e6')) deps.append(('rtaudio', 'f619b76')) # We get our OpenSSL libraries from the environment, but we diff --git a/src/lib/dcp_content.cc b/src/lib/dcp_content.cc index 62b74be90..193c9995a 100644 --- a/src/lib/dcp_content.cc +++ b/src/lib/dcp_content.cc @@ -148,7 +148,7 @@ DCPContent::DCPContent (cxml::ConstNodePtr node, int version) auto ck = node->optional_string_child("ContentKind"); if (ck) { - _content_kind = dcp::content_kind_from_string (*ck); + _content_kind = dcp::ContentKind::from_name(*ck); } _cpl = node->optional_string_child("CPL"); for (auto i: node->node_children("ReelLength")) { @@ -388,7 +388,7 @@ DCPContent::as_xml (xmlpp::Node* node, bool with_paths) const } node->add_child("ThreeD")->add_child_text (_three_d ? "1" : "0"); if (_content_kind) { - node->add_child("ContentKind")->add_child_text(dcp::content_kind_to_string(*_content_kind)); + node->add_child("ContentKind")->add_child_text(_content_kind->name()); } if (_cpl) { node->add_child("CPL")->add_child_text (_cpl.get ()); diff --git a/src/lib/dcp_content.h b/src/lib/dcp_content.h index 1b73e8fc7..efdfe30f7 100644 --- a/src/lib/dcp_content.h +++ b/src/lib/dcp_content.h @@ -31,6 +31,7 @@ #include "content.h" #include "font.h" #include +#include #include #include diff --git a/src/lib/dcp_content_type.cc b/src/lib/dcp_content_type.cc index f3cd02e9f..ce54ce01c 100644 --- a/src/lib/dcp_content_type.cc +++ b/src/lib/dcp_content_type.cc @@ -58,8 +58,12 @@ DCPContentType::setup_dcp_content_types () DCPContentType(_("Policy"), dcp::ContentKind::POLICY, N_("POL")), DCPContentType(_("Public Service Announcement"), dcp::ContentKind::PUBLIC_SERVICE_ANNOUNCEMENT, N_("PSA")), DCPContentType(_("Advertisement"), dcp::ContentKind::ADVERTISEMENT, N_("ADV")), + DCPContentType(_("Clip"), dcp::ContentKind::CLIP, N_("CLP")), + DCPContentType(_("Promo"), dcp::ContentKind::PROMO, N_("PRO")), + DCPContentType(_("Stereo card"), dcp::ContentKind::STEREOCARD, N_("STR")), DCPContentType(_("Episode"), dcp::ContentKind::EPISODE, N_("EPS")), - DCPContentType(_("Promo"), dcp::ContentKind::PROMO, N_("PRO")) + DCPContentType(_("Highlights"), dcp::ContentKind::HIGHLIGHTS, N_("HLT")), + DCPContentType(_("Event"), dcp::ContentKind::EVENT, N_("EVT")), }; } diff --git a/src/lib/dcp_content_type.h b/src/lib/dcp_content_type.h index 117ff3b16..f08db883a 100644 --- a/src/lib/dcp_content_type.h +++ b/src/lib/dcp_content_type.h @@ -28,6 +28,7 @@ */ +#include #include #include #include diff --git a/src/lib/dcp_examiner.h b/src/lib/dcp_examiner.h index ac4380597..6b88a3c0d 100644 --- a/src/lib/dcp_examiner.h +++ b/src/lib/dcp_examiner.h @@ -131,7 +131,8 @@ public: } dcp::ContentKind content_kind () const { - return _content_kind; + DCPOMATIC_ASSERT(_content_kind); + return *_content_kind; } std::string cpl () const { @@ -194,7 +195,7 @@ private: bool _kdm_valid = false; boost::optional _standard; bool _three_d = false; - dcp::ContentKind _content_kind; + boost::optional _content_kind; std::string _cpl; std::list _reel_lengths; std::map _markers; diff --git a/src/lib/ffmpeg_decoder.cc b/src/lib/ffmpeg_decoder.cc index 82eccb576..331ab313d 100644 --- a/src/lib/ffmpeg_decoder.cc +++ b/src/lib/ffmpeg_decoder.cc @@ -791,7 +791,8 @@ FFmpegDecoder::process_ass_subtitle (string ass, ContentTime from) base, text, _ffmpeg_content->video->size().width, - _ffmpeg_content->video->size().height + _ffmpeg_content->video->size().height, + sub::Colour(1, 1, 1) ); for (auto const& i: sub::collect>(raw)) { diff --git a/src/lib/log_entry.cc b/src/lib/log_entry.cc index 2980e438b..d5065e03a 100644 --- a/src/lib/log_entry.cc +++ b/src/lib/log_entry.cc @@ -22,6 +22,7 @@ #include "log_entry.h" #include #include +#include #include "i18n.h" diff --git a/src/lib/spl_entry.h b/src/lib/spl_entry.h index b2977c8aa..6fa3dd32c 100644 --- a/src/lib/spl_entry.h +++ b/src/lib/spl_entry.h @@ -24,7 +24,7 @@ #include -#include +#include namespace xmlpp { @@ -47,7 +47,7 @@ public: std::string digest; /** CPL ID */ std::string id; - dcp::ContentKind kind; + boost::optional kind; bool encrypted; private: diff --git a/src/tools/dcpomatic_playlist.cc b/src/tools/dcpomatic_playlist.cc index dea8e81d5..c327a8603 100644 --- a/src/tools/dcpomatic_playlist.cc +++ b/src/tools/dcpomatic_playlist.cc @@ -360,7 +360,7 @@ private: { _list->SetItem (N, 0, std_to_wx(e.name)); _list->SetItem (N, 1, std_to_wx(e.id)); - _list->SetItem (N, 2, std_to_wx(dcp::content_kind_to_string(e.kind))); + _list->SetItem (N, 2, std_to_wx(e.kind->name())); _list->SetItem (N, 3, e.encrypted ? S_("Question|Y") : S_("Question|N")); } diff --git a/src/wx/content_view.cc b/src/wx/content_view.cc index 95b481e0b..468b3bf97 100644 --- a/src/wx/content_view.cc +++ b/src/wx/content_view.cc @@ -155,7 +155,7 @@ ContentView::add (shared_ptr content) if (dcp && dcp->content_kind()) { it.SetId(N); it.SetColumn(1); - it.SetText(std_to_wx(dcp::content_kind_to_string(*dcp->content_kind()))); + it.SetText(std_to_wx(dcp->content_kind()->name())); SetItem(it); } diff --git a/src/wx/verify_dcp_dialog.cc b/src/wx/verify_dcp_dialog.cc index 6d1d157c1..bb51baeac 100644 --- a/src/wx/verify_dcp_dialog.cc +++ b/src/wx/verify_dcp_dialog.cc @@ -377,6 +377,9 @@ VerifyDCPDialog::VerifyDCPDialog (wxWindow* parent, shared_ptr job case dcp::VerificationNote::Code::UNEXPECTED_DURATION: add(i, _("There is a tag inside a .")); break; + case dcp::VerificationNote::Code::INVALID_CONTENT_KIND: + add(i, _("An invalid %n has been used.")); + break; } }