summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/smpte_subtitle_asset.cc26
-rw-r--r--src/subtitle_asset_internal.cc21
-rw-r--r--src/subtitle_asset_internal.h2
-rw-r--r--test/smpte_subtitle_test.cc92
-rw-r--r--test/verify_test.cc4
5 files changed, 68 insertions, 77 deletions
diff --git a/src/smpte_subtitle_asset.cc b/src/smpte_subtitle_asset.cc
index 11450ef3..f09d99f3 100644
--- a/src/smpte_subtitle_asset.cc
+++ b/src/smpte_subtitle_asset.cc
@@ -343,36 +343,36 @@ string
SMPTESubtitleAsset::xml_as_string () const
{
xmlpp::Document doc;
- auto root = doc.create_root_node ("dcst:SubtitleReel");
- root->set_namespace_declaration (subtitle_smpte_ns, "dcst");
+ auto root = doc.create_root_node ("SubtitleReel");
+ root->set_namespace_declaration (subtitle_smpte_ns);
root->set_namespace_declaration ("http://www.w3.org/2001/XMLSchema", "xs");
DCP_ASSERT (_xml_id);
- root->add_child("Id", "dcst")->add_child_text ("urn:uuid:" + *_xml_id);
- root->add_child("ContentTitleText", "dcst")->add_child_text (_content_title_text);
+ root->add_child("Id")->add_child_text("urn:uuid:" + *_xml_id);
+ root->add_child("ContentTitleText")->add_child_text(_content_title_text);
if (_annotation_text) {
- root->add_child("AnnotationText", "dcst")->add_child_text (_annotation_text.get ());
+ root->add_child("AnnotationText")->add_child_text(_annotation_text.get());
}
- root->add_child("IssueDate", "dcst")->add_child_text (_issue_date.as_string (true));
+ root->add_child("IssueDate")->add_child_text(_issue_date.as_string(true));
if (_reel_number) {
- root->add_child("ReelNumber", "dcst")->add_child_text (raw_convert<string> (_reel_number.get ()));
+ root->add_child("ReelNumber")->add_child_text(raw_convert<string>(_reel_number.get()));
}
if (_language) {
- root->add_child("Language", "dcst")->add_child_text (_language.get ());
+ root->add_child("Language")->add_child_text(_language.get());
}
- root->add_child("EditRate", "dcst")->add_child_text (_edit_rate.as_string ());
- root->add_child("TimeCodeRate", "dcst")->add_child_text (raw_convert<string> (_time_code_rate));
+ root->add_child("EditRate")->add_child_text(_edit_rate.as_string());
+ root->add_child("TimeCodeRate")->add_child_text(raw_convert<string>(_time_code_rate));
if (_start_time) {
- root->add_child("StartTime", "dcst")->add_child_text(_start_time.get().as_string(Standard::SMPTE));
+ root->add_child("StartTime")->add_child_text(_start_time.get().as_string(Standard::SMPTE));
}
for (auto i: _load_font_nodes) {
- auto load_font = root->add_child("LoadFont", "dcst");
+ auto load_font = root->add_child("LoadFont");
load_font->add_child_text ("urn:uuid:" + i->urn);
load_font->set_attribute ("ID", i->id);
}
- subtitles_as_xml (root->add_child("SubtitleList", "dcst"), _time_code_rate, Standard::SMPTE);
+ subtitles_as_xml (root->add_child("SubtitleList"), _time_code_rate, Standard::SMPTE);
return doc.write_to_string ("UTF-8");
}
diff --git a/src/subtitle_asset_internal.cc b/src/subtitle_asset_internal.cc
index a9200618..bf73fcc3 100644
--- a/src/subtitle_asset_internal.cc
+++ b/src/subtitle_asset_internal.cc
@@ -49,13 +49,6 @@ using std::shared_ptr;
using namespace dcp;
-string
-order::Context::xmlns () const
-{
- return standard == Standard::SMPTE ? "dcst" : "";
-}
-
-
order::Font::Font (shared_ptr<SubtitleString> s, Standard standard)
{
if (s->font()) {
@@ -82,11 +75,11 @@ order::Font::Font (shared_ptr<SubtitleString> s, Standard standard)
xmlpp::Element*
-order::Font::as_xml (xmlpp::Element* parent, Context& context) const
+order::Font::as_xml (xmlpp::Element* parent, Context&) const
{
- xmlpp::Element* e = parent->add_child ("Font", context.xmlns());
- for (map<string, string>::const_iterator i = _values.begin(); i != _values.end(); ++i) {
- e->set_attribute (i->first, i->second);
+ auto e = parent->add_child("Font");
+ for (const auto& i: _values) {
+ e->set_attribute (i.first, i.second);
}
return e;
}
@@ -207,7 +200,7 @@ position_align (xmlpp::Element* e, order::Context& context, HAlign h_align, floa
xmlpp::Element*
order::Text::as_xml (xmlpp::Element* parent, Context& context) const
{
- auto e = parent->add_child ("Text", context.xmlns());
+ auto e = parent->add_child ("Text");
position_align (e, context, _h_align, _h_position, _v_align, _v_position);
@@ -225,7 +218,7 @@ order::Text::as_xml (xmlpp::Element* parent, Context& context) const
xmlpp::Element*
order::Subtitle::as_xml (xmlpp::Element* parent, Context& context) const
{
- auto e = parent->add_child ("Subtitle", context.xmlns());
+ auto e = parent->add_child ("Subtitle");
e->set_attribute ("SpotNumber", raw_convert<string> (context.spot_number++));
e->set_attribute ("TimeIn", _in.rebase(context.time_code_rate).as_string(context.standard));
e->set_attribute ("TimeOut", _out.rebase(context.time_code_rate).as_string(context.standard));
@@ -257,7 +250,7 @@ order::Font::clear ()
xmlpp::Element *
order::Image::as_xml (xmlpp::Element* parent, Context& context) const
{
- auto e = parent->add_child ("Image", context.xmlns());
+ auto e = parent->add_child ("Image");
position_align (e, context, _h_align, _h_position, _v_align, _v_position);
if (context.standard == Standard::SMPTE) {
diff --git a/src/subtitle_asset_internal.h b/src/subtitle_asset_internal.h
index 9b5bb2da..f24ed58a 100644
--- a/src/subtitle_asset_internal.h
+++ b/src/subtitle_asset_internal.h
@@ -69,8 +69,6 @@ namespace order {
struct Context
{
- std::string xmlns () const;
-
int time_code_rate;
Standard standard;
int spot_number;
diff --git a/test/smpte_subtitle_test.cc b/test/smpte_subtitle_test.cc
index cc6190c2..e93efefb 100644
--- a/test/smpte_subtitle_test.cc
+++ b/test/smpte_subtitle_test.cc
@@ -222,27 +222,27 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test)
check_xml (
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
- "<dcst:SubtitleReel xmlns:dcst=\"http://www.smpte-ra.org/schemas/428-7/2010/DCST\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">"
- "<dcst:Id>urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6</dcst:Id>"
- "<dcst:ContentTitleText>Test</dcst:ContentTitleText>"
- "<dcst:IssueDate>2016-04-01T03:52:00.000+00:00</dcst:IssueDate>"
- "<dcst:ReelNumber>1</dcst:ReelNumber>"
- "<dcst:Language>en</dcst:Language>"
- "<dcst:EditRate>24 1</dcst:EditRate>"
- "<dcst:TimeCodeRate>24</dcst:TimeCodeRate>"
- "<dcst:SubtitleList>"
- "<dcst:Font AspectAdjust=\"1.0\" Color=\"FFFFFFFF\" Effect=\"none\" EffectColor=\"FF000000\" ID=\"Frutiger\" Italic=\"no\" Script=\"normal\" Size=\"48\" Underline=\"no\" Weight=\"normal\">"
- "<dcst:Subtitle SpotNumber=\"1\" TimeIn=\"00:04:09:22\" TimeOut=\"00:04:11:22\" FadeUpTime=\"00:00:00:00\" FadeDownTime=\"00:00:00:00\">"
- "<dcst:Text Valign=\"top\" Vposition=\"80\">Hello world</dcst:Text>"
- "</dcst:Subtitle>"
- "</dcst:Font>"
- "<dcst:Font AspectAdjust=\"1.0\" Color=\"FF800040\" Effect=\"border\" EffectColor=\"FF010203\" Italic=\"yes\" Script=\"normal\" Size=\"91\" Underline=\"yes\" Weight=\"bold\">"
- "<dcst:Subtitle SpotNumber=\"2\" TimeIn=\"05:41:00:21\" TimeOut=\"06:12:15:21\" FadeUpTime=\"01:02:03:04\" FadeDownTime=\"05:06:07:08\">"
- "<dcst:Text Valign=\"bottom\" Vposition=\"40\" Direction=\"rtl\">What's going on</dcst:Text>"
- "</dcst:Subtitle>"
- "</dcst:Font>"
- "</dcst:SubtitleList>"
- "</dcst:SubtitleReel>",
+ "<SubtitleReel xmlns=\"http://www.smpte-ra.org/schemas/428-7/2010/DCST\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">"
+ "<Id>urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6</Id>"
+ "<ContentTitleText>Test</ContentTitleText>"
+ "<IssueDate>2016-04-01T03:52:00.000+00:00</IssueDate>"
+ "<ReelNumber>1</ReelNumber>"
+ "<Language>en</Language>"
+ "<EditRate>24 1</EditRate>"
+ "<TimeCodeRate>24</TimeCodeRate>"
+ "<SubtitleList>"
+ "<Font AspectAdjust=\"1.0\" Color=\"FFFFFFFF\" Effect=\"none\" EffectColor=\"FF000000\" ID=\"Frutiger\" Italic=\"no\" Script=\"normal\" Size=\"48\" Underline=\"no\" Weight=\"normal\">"
+ "<Subtitle SpotNumber=\"1\" TimeIn=\"00:04:09:22\" TimeOut=\"00:04:11:22\" FadeUpTime=\"00:00:00:00\" FadeDownTime=\"00:00:00:00\">"
+ "<Text Valign=\"top\" Vposition=\"80\">Hello world</Text>"
+ "</Subtitle>"
+ "</Font>"
+ "<Font AspectAdjust=\"1.0\" Color=\"FF800040\" Effect=\"border\" EffectColor=\"FF010203\" Italic=\"yes\" Script=\"normal\" Size=\"91\" Underline=\"yes\" Weight=\"bold\">"
+ "<Subtitle SpotNumber=\"2\" TimeIn=\"05:41:00:21\" TimeOut=\"06:12:15:21\" FadeUpTime=\"01:02:03:04\" FadeDownTime=\"05:06:07:08\">"
+ "<Text Valign=\"bottom\" Vposition=\"40\" Direction=\"rtl\">What's going on</Text>"
+ "</Subtitle>"
+ "</Font>"
+ "</SubtitleList>"
+ "</SubtitleReel>",
c.xml_as_string (),
vector<string>()
);
@@ -408,31 +408,31 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2)
check_xml (
c.xml_as_string(),
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
- "<dcst:SubtitleReel xmlns:dcst=\"http://www.smpte-ra.org/schemas/428-7/2010/DCST\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">"
- "<dcst:Id>urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6</dcst:Id>"
- "<dcst:ContentTitleText>Test</dcst:ContentTitleText>"
- "<dcst:IssueDate>2016-04-01T03:52:00.000+00:00</dcst:IssueDate>"
- "<dcst:ReelNumber>1</dcst:ReelNumber>"
- "<dcst:Language>en</dcst:Language>"
- "<dcst:EditRate>24 1</dcst:EditRate>"
- "<dcst:TimeCodeRate>24</dcst:TimeCodeRate>"
- "<dcst:SubtitleList>"
- "<dcst:Font AspectAdjust=\"1.0\" Color=\"FFFFFFFF\" Effect=\"none\" EffectColor=\"FF000000\" ID=\"Arial\" Script=\"normal\" Size=\"48\" Underline=\"no\" Weight=\"normal\">"
- "<dcst:Subtitle SpotNumber=\"1\" TimeIn=\"00:00:01:00\" TimeOut=\"00:00:09:00\" FadeUpTime=\"00:00:00:00\" FadeDownTime=\"00:00:00:00\">"
- "<dcst:Text Valign=\"top\" Vposition=\"80\">"
- "<dcst:Font Italic=\"no\">Testing is </dcst:Font>"
- "<dcst:Font Italic=\"yes\">really</dcst:Font>"
- "<dcst:Font Italic=\"no\"> fun</dcst:Font>"
- "</dcst:Text>"
- "<dcst:Text Valign=\"top\" Vposition=\"90\">"
- "<dcst:Font Italic=\"no\">This is the </dcst:Font>"
- "<dcst:Font Italic=\"yes\">second</dcst:Font>"
- "<dcst:Font Italic=\"no\"> line</dcst:Font>"
- "</dcst:Text>"
- "</dcst:Subtitle>"
- "</dcst:Font>"
- "</dcst:SubtitleList>"
- "</dcst:SubtitleReel>",
+ "<SubtitleReel xmlns=\"http://www.smpte-ra.org/schemas/428-7/2010/DCST\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">"
+ "<Id>urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6</Id>"
+ "<ContentTitleText>Test</ContentTitleText>"
+ "<IssueDate>2016-04-01T03:52:00.000+00:00</IssueDate>"
+ "<ReelNumber>1</ReelNumber>"
+ "<Language>en</Language>"
+ "<EditRate>24 1</EditRate>"
+ "<TimeCodeRate>24</TimeCodeRate>"
+ "<SubtitleList>"
+ "<Font AspectAdjust=\"1.0\" Color=\"FFFFFFFF\" Effect=\"none\" EffectColor=\"FF000000\" ID=\"Arial\" Script=\"normal\" Size=\"48\" Underline=\"no\" Weight=\"normal\">"
+ "<Subtitle SpotNumber=\"1\" TimeIn=\"00:00:01:00\" TimeOut=\"00:00:09:00\" FadeUpTime=\"00:00:00:00\" FadeDownTime=\"00:00:00:00\">"
+ "<Text Valign=\"top\" Vposition=\"80\">"
+ "<Font Italic=\"no\">Testing is </Font>"
+ "<Font Italic=\"yes\">really</Font>"
+ "<Font Italic=\"no\"> fun</Font>"
+ "</Text>"
+ "<Text Valign=\"top\" Vposition=\"90\">"
+ "<Font Italic=\"no\">This is the </Font>"
+ "<Font Italic=\"yes\">second</Font>"
+ "<Font Italic=\"no\"> line</Font>"
+ "</Text>"
+ "</Subtitle>"
+ "</Font>"
+ "</SubtitleList>"
+ "</SubtitleReel>",
vector<string>()
);
}
diff --git a/test/verify_test.cc b/test/verify_test.cc
index c68152b3..62bb7f31 100644
--- a/test/verify_test.cc
+++ b/test/verify_test.cc
@@ -1284,7 +1284,7 @@ BOOST_AUTO_TEST_CASE (verify_invalid_closed_caption_xml_size_in_bytes)
{
dcp::VerificationNote::Type::BV21_ERROR,
dcp::VerificationNote::Code::INVALID_CLOSED_CAPTION_XML_SIZE_IN_BYTES,
- string("413262"),
+ string("372207"),
canonical(dir / "subs.mxf")
},
{ dcp::VerificationNote::Type::WARNING, dcp::VerificationNote::Code::INVALID_SUBTITLE_FIRST_TEXT_TIME },
@@ -1324,7 +1324,7 @@ verify_timed_text_asset_too_large (string name)
check_verify_result (
{ dir },
{
- { dcp::VerificationNote::Type::BV21_ERROR, dcp::VerificationNote::Code::INVALID_TIMED_TEXT_SIZE_IN_BYTES, string("121696411"), canonical(dir / "subs.mxf") },
+ { dcp::VerificationNote::Type::BV21_ERROR, dcp::VerificationNote::Code::INVALID_TIMED_TEXT_SIZE_IN_BYTES, string("121695136"), canonical(dir / "subs.mxf") },
{ dcp::VerificationNote::Type::BV21_ERROR, dcp::VerificationNote::Code::INVALID_TIMED_TEXT_FONT_SIZE_IN_BYTES, string("121634816"), canonical(dir / "subs.mxf") },
{ dcp::VerificationNote::Type::BV21_ERROR, dcp::VerificationNote::Code::MISSING_SUBTITLE_START_TIME, canonical(dir / "subs.mxf") },
{ dcp::VerificationNote::Type::WARNING, dcp::VerificationNote::Code::INVALID_SUBTITLE_FIRST_TEXT_TIME },