diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/smpte_subtitle_asset.h | 3 | ||||
| -rw-r--r-- | src/verify.cc | 14 |
2 files changed, 14 insertions, 3 deletions
diff --git a/src/smpte_subtitle_asset.h b/src/smpte_subtitle_asset.h index b66b1ea6..28aecefa 100644 --- a/src/smpte_subtitle_asset.h +++ b/src/smpte_subtitle_asset.h @@ -48,6 +48,8 @@ namespace ASDCP { } } +struct verify_test26; + namespace dcp { class SMPTELoadFontNode; @@ -172,6 +174,7 @@ protected: private: friend struct ::write_smpte_subtitle_test; friend struct ::write_smpte_subtitle_test2; + friend struct ::verify_test26; void read_fonts (std::shared_ptr<ASDCP::TimedText::MXFReader>); void parse_xml (std::shared_ptr<cxml::Document> xml); diff --git a/src/verify.cc b/src/verify.cc index b4408946..89d84eef 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -46,6 +46,7 @@ #include "exceptions.h" #include "compose.hpp" #include "raw_convert.h" +#include "smpte_subtitle_asset.h" #include <xercesc/util/PlatformUtils.hpp> #include <xercesc/parsers/XercesDOMParser.hpp> #include <xercesc/parsers/AbstractDOMParser.hpp> @@ -572,12 +573,19 @@ verify_main_subtitle_asset ( list<VerificationNote>& notes ) { - shared_ptr<ReelSubtitleAsset> reel_asset = reel->main_subtitle (); - stage ("Checking subtitle XML", reel->main_subtitle()->asset()->file()); + shared_ptr<SubtitleAsset> asset = reel->main_subtitle()->asset(); + stage ("Checking subtitle XML", asset->file()); /* Note: we must not use SubtitleAsset::xml_as_string() here as that will mean the data on disk * gets passed through libdcp which may clean up and therefore hide errors. */ - validate_xml (reel->main_subtitle()->asset()->raw_xml(), xsd_dtd_directory, notes); + validate_xml (asset->raw_xml(), xsd_dtd_directory, notes); + + shared_ptr<SMPTESubtitleAsset> smpte = dynamic_pointer_cast<SMPTESubtitleAsset>(asset); + if (smpte) { + if (smpte->language()) { + verify_language_tag (*smpte->language(), notes); + } + } } |
