From 4c4aeeda4f1cec028072f9995572f8a67dca974f Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 13 Jun 2016 11:34:10 +0100 Subject: [PATCH] Add SSA subtitle test. --- test/ssa_subtitle_test.cc | 75 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 test/ssa_subtitle_test.cc diff --git a/test/ssa_subtitle_test.cc b/test/ssa_subtitle_test.cc new file mode 100644 index 000000000..f6c65b1af --- /dev/null +++ b/test/ssa_subtitle_test.cc @@ -0,0 +1,75 @@ +/* + Copyright (C) 2016 Carl Hetherington + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see . + +*/ + +#include "lib/film.h" +#include "lib/text_subtitle_content.h" +#include "lib/dcp_content_type.h" +#include "lib/font.h" +#include "lib/ratio.h" +#include "lib/subtitle_content.h" +#include "test.h" +#include +#include +#include + +using std::string; +using std::list; +using boost::shared_ptr; + +/** Make a DCP with subs from a .ssa file */ +BOOST_AUTO_TEST_CASE (ssa_subtitle_test1) +{ + shared_ptr film = new_test_film ("ssa_subtitle_test1"); + + film->set_container (Ratio::from_id ("185")); + film->set_dcp_content_type (DCPContentType::from_isdcf_name ("TLR")); + film->set_name ("frobozz"); + film->set_interop (true); + shared_ptr content (new TextSubtitleContent (film, private_data / "DKH_UT_EN20160601def.ssa")); + film->examine_and_add_content (content); + wait_for_jobs (); + + content->subtitle->set_use (true); + content->subtitle->set_burn (false); + + film->make_dcp (); + wait_for_jobs (); + + /* Find the subtitle file and check it */ + for ( + boost::filesystem::directory_iterator i = boost::filesystem::directory_iterator (film->directory() / film->dcp_name (false)); + i != boost::filesystem::directory_iterator (); + ++i) { + + if (boost::filesystem::is_directory (i->path ())) { + for ( + boost::filesystem::directory_iterator j = boost::filesystem::directory_iterator (i->path ()); + j != boost::filesystem::directory_iterator (); + ++j) { + + if (boost::algorithm::starts_with (j->path().leaf().string(), "sub_")) { + list ignore; + ignore.push_back ("SubtitleID"); + check_xml (*j, private_data / "DKH_UT_EN20160601def.xml", ignore); + } + } + } + } +} -- 2.30.2