#include <boost/test/unit_test.hpp>
-using std::make_shared;
-using std::string;
-using std::shared_ptr;
using std::dynamic_pointer_cast;
+using std::shared_ptr;
+using std::string;
using std::vector;
using boost::optional;
{
dcp::SMPTESubtitleAsset subs;
subs.add(
- make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::SubtitleString>(
optional<string>(),
false, false, false,
dcp::Colour(),
c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00"));
c.add (
- make_shared<dcp::SubtitleString> (
+ std::make_shared<dcp::SubtitleString> (
string ("Frutiger"),
false,
false,
);
c.add (
- make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::SubtitleString>(
boost::optional<string> (),
true,
true,
);
c.add (
- make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::SubtitleString>(
boost::optional<string> (),
true,
true,
"<SubtitleReel xmlns=\"http://www.smpte-ra.org/schemas/428-7/2010/DCST\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n"
" <Id>urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6</Id>\n"
" <ContentTitleText>Test</ContentTitleText>\n"
- " <IssueDate>2016-04-01T03:52:00.000+00:00</IssueDate>\n"
+ " <IssueDate>2016-04-01T03:52:00</IssueDate>\n"
" <ReelNumber>1</ReelNumber>\n"
" <Language>en</Language>\n"
" <EditRate>24 1</EditRate>\n"
c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00"));
c.add (
- make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::SubtitleString>(
string ("Arial"),
false,
false,
);
c.add (
- make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::SubtitleString>(
string ("Arial"),
true,
false,
);
c.add (
- make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::SubtitleString>(
string ("Arial"),
false,
false,
);
c.add (
- make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::SubtitleString>(
string ("Arial"),
false,
false,
);
c.add (
- make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::SubtitleString>(
string ("Arial"),
true,
false,
);
c.add (
- make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::SubtitleString>(
string ("Arial"),
false,
false,
"<SubtitleReel xmlns=\"http://www.smpte-ra.org/schemas/428-7/2010/DCST\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n"
" <Id>urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6</Id>\n"
" <ContentTitleText>Test</ContentTitleText>\n"
- " <IssueDate>2016-04-01T03:52:00.000+00:00</IssueDate>\n"
+ " <IssueDate>2016-04-01T03:52:00</IssueDate>\n"
" <ReelNumber>1</ReelNumber>\n"
" <Language>en</Language>\n"
" <EditRate>24 1</EditRate>\n"
boost::filesystem::path const sub_image = "test/data/sub.png";
c.add (
- make_shared<dcp::SubtitleImage>(
+ std::make_shared<dcp::SubtitleImage>(
dcp::ArrayData(sub_image),
dcp::Time (0, 4, 9, 22, 24),
dcp::Time (0, 4, 11, 22, 24),
c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00"));
c.add (
- make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::SubtitleString>(
string ("Arial"),
false,
false,
);
c.add (
- make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::SubtitleString>(
string ("Arial"),
false,
false,
"<SubtitleReel xmlns=\"http://www.smpte-ra.org/schemas/428-7/2010/DCST\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n"
" <Id>urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6</Id>\n"
" <ContentTitleText>Test</ContentTitleText>\n"
- " <IssueDate>2016-04-01T03:52:00.000+00:00</IssueDate>\n"
+ " <IssueDate>2016-04-01T03:52:00</IssueDate>\n"
" <ReelNumber>1</ReelNumber>\n"
" <Language>en</Language>\n"
" <EditRate>24 1</EditRate>\n"
c.set_issue_date (dcp::LocalTime ("2016-04-01T03:52:00+00:00"));
c.add (
- make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::SubtitleString>(
string ("Arial"),
false,
false,
);
c.add (
- make_shared<dcp::SubtitleString>(
+ std::make_shared<dcp::SubtitleString>(
string ("Arial"),
false,
false,
"<SubtitleReel xmlns=\"http://www.smpte-ra.org/schemas/428-7/2010/DCST\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\">\n"
" <Id>urn:uuid:a6c58cff-3e1e-4b38-acec-a42224475ef6</Id>\n"
" <ContentTitleText>Test</ContentTitleText>\n"
- " <IssueDate>2016-04-01T03:52:00.000+00:00</IssueDate>\n"
+ " <IssueDate>2016-04-01T03:52:00</IssueDate>\n"
" <ReelNumber>1</ReelNumber>\n"
" <Language>en</Language>\n"
" <EditRate>24 1</EditRate>\n"
);
}
+
+BOOST_AUTO_TEST_CASE(smpte_subtitle_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::remove_all(out);
+ boost::filesystem::create_directories(out);
+
+ dcp::SMPTESubtitleAsset test_2014;
+ test_2014.set_issue_date(dcp::LocalTime("2020-01-01T14:00:00"));
+ test_2014.write(out / "2014.mxf");
+ BOOST_CHECK(dcp::SMPTESubtitleAsset(ref / "2014.mxf").raw_xml() == dcp::SMPTESubtitleAsset(out / "2014.mxf").raw_xml());
+
+ dcp::SMPTESubtitleAsset test_2010(dcp::SubtitleStandard::SMPTE_2010);
+ test_2010.set_issue_date(dcp::LocalTime("2020-01-01T14:00:00"));
+ test_2010.write(out / "2010.mxf");
+ BOOST_CHECK(dcp::SMPTESubtitleAsset(ref / "2010.mxf").raw_xml() == dcp::SMPTESubtitleAsset(out / "2010.mxf").raw_xml());
+
+ dcp::SMPTESubtitleAsset test_2007(dcp::SubtitleStandard::SMPTE_2007);
+ test_2007.set_issue_date(dcp::LocalTime("2020-01-01T14:00:00"));
+ test_2007.write(out / "2007.mxf");
+ BOOST_CHECK(dcp::SMPTESubtitleAsset(ref / "2007.mxf").raw_xml() == dcp::SMPTESubtitleAsset(out / "2007.mxf").raw_xml());
+}
+
+
+BOOST_AUTO_TEST_CASE(smpte_subtitle_standard_read_correctly)
+{
+ dcp::SMPTESubtitleAsset test_2007("test/data/2007.mxf");
+ BOOST_CHECK(test_2007.subtitle_standard() == dcp::SubtitleStandard::SMPTE_2007);
+
+ dcp::SMPTESubtitleAsset test_2010("test/data/2010.mxf");
+ BOOST_CHECK(test_2010.subtitle_standard() == dcp::SubtitleStandard::SMPTE_2010);
+
+ dcp::SMPTESubtitleAsset test_2014("test/data/2014.mxf");
+ BOOST_CHECK(test_2014.subtitle_standard() == dcp::SubtitleStandard::SMPTE_2014);
+}
+