From 8409171ec7d749a2426cca57cf6edd6714dc497d Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 21 Aug 2012 01:13:24 +0100 Subject: De-hackify subtitle handling a bit. --- test/tests.cc | 62 ++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 34 insertions(+), 28 deletions(-) (limited to 'test/tests.cc') diff --git a/test/tests.cc b/test/tests.cc index 97ad86ca..649a96ff 100644 --- a/test/tests.cc +++ b/test/tests.cc @@ -115,42 +115,48 @@ BOOST_AUTO_TEST_CASE (subtitles) libdcp::SubtitleAsset subs ("test/ref", "subs.xml"); BOOST_CHECK_EQUAL (subs.language(), "French"); - BOOST_CHECK_EQUAL (subs.fonts().size(), 1); - BOOST_CHECK_EQUAL (subs.fonts().front()->subtitles().size(), 4); + BOOST_CHECK_EQUAL (subs.font_nodes().size(), 1); + BOOST_CHECK_EQUAL (subs.font_nodes().front()->subtitle_nodes.size(), 4); - list >::const_iterator i = subs.fonts().front()->subtitles().begin (); + list >::const_iterator i = subs.font_nodes().front()->subtitle_nodes.begin (); - BOOST_CHECK_EQUAL ((*i)->in(), libdcp::Time (0, 0, 5, 198)); - BOOST_CHECK_EQUAL ((*i)->out(), libdcp::Time (0, 0, 7, 115)); - BOOST_CHECK_EQUAL ((*i)->texts().size(), 1); - BOOST_CHECK_EQUAL ((*i)->texts().front()->v_position(), 15); - BOOST_CHECK_EQUAL ((*i)->texts().front()->text(), "My jacket was Idi Amin's"); + BOOST_CHECK_EQUAL ((*i)->in, libdcp::Time (0, 0, 5, 198)); + BOOST_CHECK_EQUAL ((*i)->out, libdcp::Time (0, 0, 7, 115)); + BOOST_CHECK_EQUAL ((*i)->text_nodes.size(), 1); + BOOST_CHECK_EQUAL ((*i)->text_nodes.front()->v_position, 15); + BOOST_CHECK_EQUAL ((*i)->text_nodes.front()->text, "My jacket was Idi Amin's"); ++i; - BOOST_CHECK_EQUAL ((*i)->in(), libdcp::Time (0, 0, 7, 177)); - BOOST_CHECK_EQUAL ((*i)->out(), libdcp::Time (0, 0, 11, 31)); - BOOST_CHECK_EQUAL ((*i)->texts().size(), 2); - BOOST_CHECK_EQUAL ((*i)->texts().front()->v_position(), 21); - BOOST_CHECK_EQUAL ((*i)->texts().front()->text(), "My corset was H.M. The Queen's"); - BOOST_CHECK_EQUAL ((*i)->texts().back()->v_position(), 15); - BOOST_CHECK_EQUAL ((*i)->texts().back()->text(), "My large wonderbra"); + BOOST_CHECK_EQUAL ((*i)->in, libdcp::Time (0, 0, 7, 177)); + BOOST_CHECK_EQUAL ((*i)->out, libdcp::Time (0, 0, 11, 31)); + BOOST_CHECK_EQUAL ((*i)->text_nodes.size(), 2); + BOOST_CHECK_EQUAL ((*i)->text_nodes.front()->v_position, 21); + BOOST_CHECK_EQUAL ((*i)->text_nodes.front()->text, "My corset was H.M. The Queen's"); + BOOST_CHECK_EQUAL ((*i)->text_nodes.back()->v_position, 15); + BOOST_CHECK_EQUAL ((*i)->text_nodes.back()->text, "My large wonderbra"); ++i; - BOOST_CHECK_EQUAL ((*i)->in(), libdcp::Time (0, 0, 11, 94)); - BOOST_CHECK_EQUAL ((*i)->out(), libdcp::Time (0, 0, 13, 63)); - BOOST_CHECK_EQUAL ((*i)->texts().size(), 1); - BOOST_CHECK_EQUAL ((*i)->texts().front()->v_position(), 15); - BOOST_CHECK_EQUAL ((*i)->texts().front()->text(), "Once belonged to the Shah"); + BOOST_CHECK_EQUAL ((*i)->in, libdcp::Time (0, 0, 11, 94)); + BOOST_CHECK_EQUAL ((*i)->out, libdcp::Time (0, 0, 13, 63)); + BOOST_CHECK_EQUAL ((*i)->text_nodes.size(), 1); + BOOST_CHECK_EQUAL ((*i)->text_nodes.front()->v_position, 15); + BOOST_CHECK_EQUAL ((*i)->text_nodes.front()->text, "Once belonged to the Shah"); ++i; - BOOST_CHECK_EQUAL ((*i)->in(), libdcp::Time (0, 0, 13, 104)); - BOOST_CHECK_EQUAL ((*i)->out(), libdcp::Time (0, 0, 15, 177)); - BOOST_CHECK_EQUAL ((*i)->texts().size(), 1); - BOOST_CHECK_EQUAL ((*i)->texts().front()->v_position(), 15); - BOOST_CHECK_EQUAL ((*i)->texts().front()->text(), "And these are Roy Hattersley's jeans"); - - BOOST_CHECK_EQUAL (subs.subtitles_at (libdcp::Time (0, 0, 14, 042)).size(), 1); - BOOST_CHECK_EQUAL (subs.subtitles_at (libdcp::Time (0, 0, 14, 042)).front()->text(), "And these are Roy Hattersley's jeans"); + BOOST_CHECK_EQUAL ((*i)->in, libdcp::Time (0, 0, 13, 104)); + BOOST_CHECK_EQUAL ((*i)->out, libdcp::Time (0, 0, 15, 177)); + BOOST_CHECK_EQUAL ((*i)->text_nodes.size(), 1); + BOOST_CHECK_EQUAL ((*i)->text_nodes.front()->v_position, 15); + BOOST_CHECK_EQUAL ((*i)->text_nodes.front()->text, "And these are Roy Hattersley's jeans"); + + BOOST_CHECK_EQUAL (subs.subtitles_at (libdcp::Time (0, 0, 14, 42)).size(), 1); + shared_ptr s = subs.subtitles_at (libdcp::Time (0, 0, 14, 42)).front (); + BOOST_CHECK_EQUAL (s->text(), "And these are Roy Hattersley's jeans"); + BOOST_CHECK_EQUAL (s->v_position(), 15); + BOOST_CHECK_EQUAL (s->in(), libdcp::Time (0, 0, 13, 104)); + BOOST_CHECK_EQUAL (s->out(), libdcp::Time (0, 0, 15, 177)); + BOOST_CHECK_EQUAL (s->font(), "Arial"); + BOOST_CHECK_EQUAL (s->size_in_pixels(1080), 53); } BOOST_AUTO_TEST_CASE (dcp_time) -- cgit v1.2.3