diff options
| -rw-r--r-- | src/smpte_subtitle_asset.cc | 26 | ||||
| -rw-r--r-- | src/subtitle_asset_internal.cc | 21 | ||||
| -rw-r--r-- | src/subtitle_asset_internal.h | 2 | ||||
| -rw-r--r-- | test/smpte_subtitle_test.cc | 92 | ||||
| -rw-r--r-- | test/verify_test.cc | 4 |
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 }, |
