Add Dolby EDR metadata support (GH #12).
[libdcp.git] / test / smpte_subtitle_test.cc
index f66ca05574dd6c26fae2eaa1539e57b46ed857cd..3bf9dc5207a2cec205ca71ab1170fd055529d38b 100644 (file)
@@ -72,7 +72,8 @@ BOOST_AUTO_TEST_CASE (smpte_subtitle_id_test)
                        dcp::Colour(),
                        dcp::Time(0, 0, 0, 0, 24),
                        dcp::Time(0, 0, 0, 0, 24),
-                       0
+                       0,
+                       std::vector<dcp::Ruby>()
                        )
                );
        subs.write("build/test/smpte_subtitle_id_test.mxf");
@@ -201,7 +202,8 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test)
                        dcp::Colour (0, 0, 0),
                        dcp::Time (0, 0, 0, 0, 24),
                        dcp::Time (0, 0, 0, 0, 24),
-                       0
+                       0,
+                       std::vector<dcp::Ruby>()
                        )
                );
 
@@ -227,7 +229,8 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test)
                        dcp::Colour (1, 2, 3),
                        dcp::Time (1, 2, 3, 4, 24),
                        dcp::Time (5, 6, 7, 8, 24),
-                       0
+                       0,
+                       std::vector<dcp::Ruby>()
                        )
                );
 
@@ -253,7 +256,8 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test)
                        dcp::Colour (1, 2, 3),
                        dcp::Time (1, 2, 3, 4, 24),
                        dcp::Time (5, 6, 7, 8, 24),
-                       4.2
+                       4.2,
+                       std::vector<dcp::Ruby>()
                        )
                );
 
@@ -320,7 +324,8 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2)
                        dcp::Colour (0, 0, 0),
                        dcp::Time (0, 0, 0, 0, 24),
                        dcp::Time (0, 0, 0, 0, 24),
-                       0
+                       0,
+                       std::vector<dcp::Ruby>()
                        )
                );
 
@@ -346,7 +351,8 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2)
                        dcp::Colour (0, 0, 0),
                        dcp::Time (0, 0, 0, 0, 24),
                        dcp::Time (0, 0, 0, 0, 24),
-                       0
+                       0,
+                       std::vector<dcp::Ruby>()
                        )
                );
 
@@ -372,7 +378,8 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2)
                        dcp::Colour (0, 0, 0),
                        dcp::Time (0, 0, 0, 0, 24),
                        dcp::Time (0, 0, 0, 0, 24),
-                       0
+                       0,
+                       std::vector<dcp::Ruby>()
                        )
                );
 
@@ -398,7 +405,8 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2)
                        dcp::Colour (0, 0, 0),
                        dcp::Time (0, 0, 0, 0, 24),
                        dcp::Time (0, 0, 0, 0, 24),
-                       0
+                       0,
+                       std::vector<dcp::Ruby>()
                        )
                );
 
@@ -424,7 +432,8 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2)
                        dcp::Colour (0, 0, 0),
                        dcp::Time (0, 0, 0, 0, 24),
                        dcp::Time (0, 0, 0, 0, 24),
-                       0
+                       0,
+                       std::vector<dcp::Ruby>()
                        )
                );
 
@@ -450,7 +459,8 @@ BOOST_AUTO_TEST_CASE (write_smpte_subtitle_test2)
                        dcp::Colour (0, 0, 0),
                        dcp::Time (0, 0, 0, 0, 24),
                        dcp::Time (0, 0, 0, 0, 24),
-                       0
+                       0,
+                       std::vector<dcp::Ruby>()
                        )
                );
 
@@ -564,7 +574,8 @@ BOOST_AUTO_TEST_CASE (write_subtitles_in_vertical_order_with_top_alignment)
                        dcp::Colour (0, 0, 0),
                        dcp::Time (0, 0, 0, 0, 24),
                        dcp::Time (0, 0, 0, 0, 24),
-                       0
+                       0,
+                       std::vector<dcp::Ruby>()
                        )
                );
 
@@ -590,7 +601,8 @@ BOOST_AUTO_TEST_CASE (write_subtitles_in_vertical_order_with_top_alignment)
                        dcp::Colour (0, 0, 0),
                        dcp::Time (0, 0, 0, 0, 24),
                        dcp::Time (0, 0, 0, 0, 24),
-                       0
+                       0,
+                       std::vector<dcp::Ruby>()
                        )
                );
 
@@ -652,7 +664,8 @@ BOOST_AUTO_TEST_CASE (write_subtitles_in_vertical_order_with_bottom_alignment)
                        dcp::Colour (0, 0, 0),
                        dcp::Time (0, 0, 0, 0, 24),
                        dcp::Time (0, 0, 0, 0, 24),
-                       0
+                       0,
+                       std::vector<dcp::Ruby>()
                        )
                );
 
@@ -678,7 +691,8 @@ BOOST_AUTO_TEST_CASE (write_subtitles_in_vertical_order_with_bottom_alignment)
                        dcp::Colour (0, 0, 0),
                        dcp::Time (0, 0, 0, 0, 24),
                        dcp::Time (0, 0, 0, 0, 24),
-                       0
+                       0,
+                       std::vector<dcp::Ruby>()
                        )
                );
 
@@ -722,19 +736,17 @@ BOOST_AUTO_TEST_CASE(smpte_subtitle_standard_written_correctly)
        dcp::SMPTESubtitleAsset test_2014;
        test_2014.set_issue_date(dcp::LocalTime("2020-01-01T14:00:00"));
        test_2014.write(out / "2014.mxf");
-       std::cout << dcp::SMPTESubtitleAsset(ref / "2014.mxf").raw_xml() << "\n";
-       std::cout << dcp::SMPTESubtitleAsset(out / "2014.mxf").raw_xml() << "\n";
-       BOOST_CHECK(dcp::SMPTESubtitleAsset(ref / "2014.mxf").raw_xml() == dcp::SMPTESubtitleAsset(out / "2014.mxf").raw_xml());
+       BOOST_CHECK_EQUAL(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());
+       BOOST_CHECK_EQUAL(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_CHECK_EQUAL(dcp::SMPTESubtitleAsset(ref / "2007.mxf").raw_xml(), dcp::SMPTESubtitleAsset(out / "2007.mxf").raw_xml());
 }
 
 
@@ -750,3 +762,23 @@ BOOST_AUTO_TEST_CASE(smpte_subtitle_standard_read_correctly)
        BOOST_CHECK(test_2014.subtitle_standard() == dcp::SubtitleStandard::SMPTE_2014);
 }
 
+
+BOOST_AUTO_TEST_CASE(smpte_subtitle_intrinsic_duration_read_correctly)
+{
+       dcp::SMPTESubtitleAsset ref("test/data/verify_incorrect_closed_caption_ordering3.xml");
+
+       dcp::Key key;
+       ref.set_key(key);
+
+       auto constexpr duration = 480U;
+
+       ref.set_intrinsic_duration(duration);
+
+       auto const path = boost::filesystem::path("build/test/smpte_subtitle_instrinsic_duration_read_correctly.mxf");
+       ref.write(path);
+
+       auto check = dcp::SMPTESubtitleAsset(path);
+       check.set_key(key);
+       BOOST_CHECK_EQUAL(check.intrinsic_duration(), duration);
+}
+