#include "smpte_load_font_node.h"
-#include "smpte_subtitle_asset.h"
+#include "smpte_text_asset.h"
#include "stream_operators.h"
#include "subtitle_image.h"
#include "test.h"
BOOST_AUTO_TEST_CASE (smpte_subtitle_id_test)
{
- dcp::SMPTESubtitleAsset subs;
+ dcp::SMPTETextAsset subs;
subs.add(
- std::make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::TextString>(
optional<string>(),
false, false, false,
dcp::Colour(),
);
subs.write("build/test/smpte_subtitle_id_test.mxf");
- dcp::SMPTESubtitleAsset check("build/test/smpte_subtitle_id_test.mxf");
+ dcp::SMPTETextAsset check("build/test/smpte_subtitle_id_test.mxf");
BOOST_CHECK(check.id() != check.xml_id());
}
/** Check reading of a SMPTE subtitle file */
BOOST_AUTO_TEST_CASE (read_smpte_subtitle_test)
{
- dcp::SMPTESubtitleAsset sc (
+ dcp::SMPTETextAsset sc(
private_test /
"data" /
"JourneyToJah_TLR-1_F_EN-DE-FR_CH_51_2K_LOK_20140225_DGL_SMPTE_OV" /
BOOST_REQUIRE (smpte_lfn);
BOOST_CHECK_EQUAL (smpte_lfn->id, "theFontId");
BOOST_CHECK_EQUAL (smpte_lfn->urn, "9118bbce-4105-4a05-b37c-a5a6f75e1fea");
- BOOST_REQUIRE_EQUAL (sc.subtitles().size(), 63U);
- BOOST_REQUIRE (dynamic_pointer_cast<const dcp::SubtitleString>(sc.subtitles().front()));
- BOOST_CHECK_EQUAL (dynamic_pointer_cast<const dcp::SubtitleString>(sc.subtitles().front())->text(), "Noch mal.");
- BOOST_CHECK_EQUAL (dynamic_pointer_cast<const dcp::SubtitleString>(sc.subtitles().front())->space_before(), 0.0f);
- BOOST_CHECK_EQUAL (sc.subtitles().front()->in(), dcp::Time (0, 0, 25, 12, 25));
- BOOST_CHECK_EQUAL (sc.subtitles().front()->out(), dcp::Time (0, 0, 26, 4, 25));
- BOOST_REQUIRE (dynamic_pointer_cast<const dcp::SubtitleString>(sc.subtitles().back()));
- BOOST_CHECK_EQUAL (dynamic_pointer_cast<const dcp::SubtitleString>(sc.subtitles().back())->text(), "Prochainement");
- BOOST_CHECK_EQUAL (dynamic_pointer_cast<const dcp::SubtitleString>(sc.subtitles().back())->space_before(), 0.0f);
- BOOST_CHECK_EQUAL (sc.subtitles().back()->in(), dcp::Time (0, 1, 57, 17, 25));
- BOOST_CHECK_EQUAL (sc.subtitles().back()->out(), dcp::Time (0, 1, 58, 12, 25));
+ BOOST_REQUIRE_EQUAL(sc.texts().size(), 63U);
+ BOOST_REQUIRE (dynamic_pointer_cast<const dcp::TextString>(sc.texts().front()));
+ BOOST_CHECK_EQUAL (dynamic_pointer_cast<const dcp::TextString>(sc.texts().front())->text(), "Noch mal.");
+ BOOST_CHECK_EQUAL (dynamic_pointer_cast<const dcp::TextString>(sc.texts().front())->space_before(), 0.0f);
+ BOOST_CHECK_EQUAL (sc.texts().front()->in(), dcp::Time (0, 0, 25, 12, 25));
+ BOOST_CHECK_EQUAL (sc.texts().front()->out(), dcp::Time (0, 0, 26, 4, 25));
+ BOOST_REQUIRE (dynamic_pointer_cast<const dcp::TextString>(sc.texts().back()));
+ BOOST_CHECK_EQUAL (dynamic_pointer_cast<const dcp::TextString>(sc.texts().back())->text(), "Prochainement");
+ BOOST_CHECK_EQUAL (dynamic_pointer_cast<const dcp::TextString>(sc.texts().back())->space_before(), 0.0f);
+ BOOST_CHECK_EQUAL (sc.texts().back()->in(), dcp::Time (0, 1, 57, 17, 25));
+ BOOST_CHECK_EQUAL (sc.texts().back()->out(), dcp::Time (0, 1, 58, 12, 25));
}
/** And another one featuring <Font> within <Text> and some <Space> */
BOOST_AUTO_TEST_CASE (read_smpte_subtitle_test2)
{
- dcp::SMPTESubtitleAsset sc (private_test / "olsson.xml");
+ dcp::SMPTETextAsset sc (private_test / "olsson.xml");
- auto subs = sc.subtitles();
+ auto subs = sc.texts();
BOOST_REQUIRE_EQUAL (subs.size(), 6U);
auto i = 0;
- auto is = dynamic_pointer_cast<const dcp::SubtitleString>(subs[i]);
+ auto is = dynamic_pointer_cast<const dcp::TextString>(subs[i]);
BOOST_REQUIRE (is);
BOOST_CHECK_EQUAL (is->text(), "Testing is ");
BOOST_CHECK (!is->italic());
BOOST_CHECK_CLOSE (is->space_before(), 0, 0.1);
++i;
- is = dynamic_pointer_cast<const dcp::SubtitleString>(subs[i]);
+ is = dynamic_pointer_cast<const dcp::TextString>(subs[i]);
BOOST_REQUIRE (is);
BOOST_CHECK_EQUAL (is->text(), "really");
BOOST_CHECK (is->italic());
BOOST_CHECK_CLOSE (is->space_before(), 0, 0.1);
++i;
- is = dynamic_pointer_cast<const dcp::SubtitleString>(subs[i]);
+ is = dynamic_pointer_cast<const dcp::TextString>(subs[i]);
BOOST_REQUIRE (is);
BOOST_CHECK_EQUAL (is->text(), " fun!");
BOOST_CHECK (!is->italic());
BOOST_CHECK_CLOSE (is->space_before(), 5, 0.1);
++i;
- is = dynamic_pointer_cast<const dcp::SubtitleString>(subs[i]);
+ is = dynamic_pointer_cast<const dcp::TextString>(subs[i]);
BOOST_REQUIRE (is);
BOOST_CHECK_EQUAL (is->text(), "This is the ");
BOOST_CHECK (!is->italic());
BOOST_CHECK_CLOSE (is->space_before(), 0, 0.1);
++i;
- is = dynamic_pointer_cast<const dcp::SubtitleString>(subs[i]);
+ is = dynamic_pointer_cast<const dcp::TextString>(subs[i]);
BOOST_REQUIRE (is);
BOOST_CHECK_EQUAL (is->text(), "second");
BOOST_CHECK (is->italic());
BOOST_CHECK_CLOSE (is->space_before(), 0, 0.1);
++i;
- is = dynamic_pointer_cast<const dcp::SubtitleString>(subs[i]);
+ is = dynamic_pointer_cast<const dcp::TextString>(subs[i]);
BOOST_REQUIRE (is);
BOOST_CHECK_EQUAL (is->text(), " line!");
BOOST_CHECK (!is->italic());
/* Write some subtitle content as SMPTE XML and check that it is right */
BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test)
{
- dcp::SMPTESubtitleAsset c;
+ dcp::SMPTETextAsset c;
c.set_reel_number (1);
c.set_language (dcp::LanguageTag("en"));
c.set_content_title_text ("Test");
c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00"));
c.add (
- std::make_shared<dcp::SubtitleString> (
+ std::make_shared<dcp::TextString> (
string ("Frutiger"),
false,
false,
);
c.add (
- std::make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::TextString>(
boost::optional<string> (),
true,
true,
);
c.add (
- std::make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::TextString>(
boost::optional<string> (),
true,
true,
*/
BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2)
{
- dcp::SMPTESubtitleAsset c;
+ dcp::SMPTETextAsset c;
c.set_reel_number (1);
c.set_language (dcp::LanguageTag("en"));
c.set_content_title_text ("Test");
c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00"));
c.add (
- std::make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::TextString>(
string ("Arial"),
false,
false,
);
c.add (
- std::make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::TextString>(
string ("Arial"),
true,
false,
);
c.add (
- std::make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::TextString>(
string ("Arial"),
false,
false,
);
c.add (
- std::make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::TextString>(
string ("Arial"),
false,
false,
);
c.add (
- std::make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::TextString>(
string ("Arial"),
true,
false,
);
c.add (
- std::make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::TextString>(
string ("Arial"),
false,
false,
/* Write some subtitle content as SMPTE using bitmaps and check that it is right */
BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test3)
{
- dcp::SMPTESubtitleAsset c;
+ dcp::SMPTETextAsset c;
c.set_reel_number (1);
c.set_language (dcp::LanguageTag("en"));
c.set_content_title_text ("Test");
boost::filesystem::create_directories (path);
c.write (path / "subs.mxf");
- dcp::SMPTESubtitleAsset read_back (path / "subs.mxf");
- auto subs = read_back.subtitles ();
+ dcp::SMPTETextAsset read_back (path / "subs.mxf");
+ auto subs = read_back.texts();
BOOST_REQUIRE_EQUAL (subs.size(), 1U);
auto image = dynamic_pointer_cast<const dcp::SubtitleImage>(subs[0]);
BOOST_REQUIRE (image);
*/
BOOST_AUTO_TEST_CASE (write_subtitles_in_vertical_order_with_top_alignment)
{
- dcp::SMPTESubtitleAsset c;
+ dcp::SMPTETextAsset c;
c.set_reel_number (1);
c.set_language (dcp::LanguageTag("en"));
c.set_content_title_text ("Test");
c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00"));
c.add (
- std::make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::TextString>(
string ("Arial"),
false,
false,
);
c.add (
- std::make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::TextString>(
string ("Arial"),
false,
false,
/* See the test above */
BOOST_AUTO_TEST_CASE (write_subtitles_in_vertical_order_with_bottom_alignment)
{
- dcp::SMPTESubtitleAsset c;
+ dcp::SMPTETextAsset c;
c.set_reel_number (1);
c.set_language (dcp::LanguageTag("en"));
c.set_content_title_text ("Test");
c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00"));
c.add (
- std::make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::TextString>(
string ("Arial"),
false,
false,
);
c.add (
- std::make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::TextString>(
string ("Arial"),
false,
false,
}
-BOOST_AUTO_TEST_CASE(smpte_subtitle_standard_written_correctly)
+BOOST_AUTO_TEST_CASE(smpte_text_standard_written_correctly)
{
RNGFixer fixer;
boost::filesystem::path const ref = "test/data";
- boost::filesystem::path const out = "build/test/smpte_subtitle_standard_written_correctly";
+ boost::filesystem::path const out = "build/test/smpte_text_standard_written_correctly";
boost::filesystem::remove_all(out);
boost::filesystem::create_directories(out);
- dcp::SMPTESubtitleAsset test_2014;
+ dcp::SMPTETextAsset test_2014;
test_2014.set_issue_date(dcp::LocalTime("2020-01-01T14:00:00"));
test_2014.write(out / "2014.mxf");
- BOOST_CHECK_EQUAL(dcp::SMPTESubtitleAsset(ref / "2014.mxf").raw_xml(), dcp::SMPTESubtitleAsset(out / "2014.mxf").raw_xml());
+ BOOST_CHECK_EQUAL(dcp::SMPTETextAsset(ref / "2014.mxf").raw_xml(), dcp::SMPTETextAsset(out / "2014.mxf").raw_xml());
- dcp::SMPTESubtitleAsset test_2010(dcp::SubtitleStandard::SMPTE_2010);
+ dcp::SMPTETextAsset test_2010(dcp::TextStandard::SMPTE_2010);
test_2010.set_issue_date(dcp::LocalTime("2020-01-01T14:00:00"));
test_2010.write(out / "2010.mxf");
- BOOST_CHECK_EQUAL(dcp::SMPTESubtitleAsset(ref / "2010.mxf").raw_xml(), dcp::SMPTESubtitleAsset(out / "2010.mxf").raw_xml());
+ BOOST_CHECK_EQUAL(dcp::SMPTETextAsset(ref / "2010.mxf").raw_xml(), dcp::SMPTETextAsset(out / "2010.mxf").raw_xml());
- dcp::SMPTESubtitleAsset test_2007(dcp::SubtitleStandard::SMPTE_2007);
+ dcp::SMPTETextAsset test_2007(dcp::TextStandard::SMPTE_2007);
test_2007.set_issue_date(dcp::LocalTime("2020-01-01T14:00:00"));
test_2007.write(out / "2007.mxf");
- BOOST_CHECK_EQUAL(dcp::SMPTESubtitleAsset(ref / "2007.mxf").raw_xml(), dcp::SMPTESubtitleAsset(out / "2007.mxf").raw_xml());
+ BOOST_CHECK_EQUAL(dcp::SMPTETextAsset(ref / "2007.mxf").raw_xml(), dcp::SMPTETextAsset(out / "2007.mxf").raw_xml());
}
-BOOST_AUTO_TEST_CASE(smpte_subtitle_standard_read_correctly)
+BOOST_AUTO_TEST_CASE(smpte_text_standard_read_correctly)
{
- dcp::SMPTESubtitleAsset test_2007("test/data/2007.mxf");
- BOOST_CHECK(test_2007.subtitle_standard() == dcp::SubtitleStandard::SMPTE_2007);
+ dcp::SMPTETextAsset test_2007("test/data/2007.mxf");
+ BOOST_CHECK(test_2007.text_standard() == dcp::TextStandard::SMPTE_2007);
- dcp::SMPTESubtitleAsset test_2010("test/data/2010.mxf");
- BOOST_CHECK(test_2010.subtitle_standard() == dcp::SubtitleStandard::SMPTE_2010);
+ dcp::SMPTETextAsset test_2010("test/data/2010.mxf");
+ BOOST_CHECK(test_2010.text_standard() == dcp::TextStandard::SMPTE_2010);
- dcp::SMPTESubtitleAsset test_2014("test/data/2014.mxf");
- BOOST_CHECK(test_2014.subtitle_standard() == dcp::SubtitleStandard::SMPTE_2014);
+ dcp::SMPTETextAsset test_2014("test/data/2014.mxf");
+ BOOST_CHECK(test_2014.text_standard() == dcp::TextStandard::SMPTE_2014);
}
BOOST_AUTO_TEST_CASE(smpte_subtitle_intrinsic_duration_read_correctly)
{
- dcp::SMPTESubtitleAsset ref("test/data/verify_incorrect_closed_caption_ordering3.xml");
+ dcp::SMPTETextAsset ref("test/data/verify_incorrect_closed_caption_ordering3.xml");
dcp::Key key;
ref.set_key(key);
auto const path = boost::filesystem::path("build/test/smpte_subtitle_instrinsic_duration_read_correctly.mxf");
ref.write(path);
- auto check = dcp::SMPTESubtitleAsset(path);
+ auto check = dcp::SMPTETextAsset(path);
check.set_key(key);
BOOST_CHECK_EQUAL(check.intrinsic_duration(), duration);
}