/** @file test/dcp_subtitle_test.cc
* @brief Test DCP subtitle content in various ways.
+ * @ingroup specific
*/
#include <boost/test/unit_test.hpp>
static void
store (ContentTextSubtitle sub)
{
- stored = sub;
+ if (!stored) {
+ stored = sub;
+ } else {
+ BOOST_FOREACH (dcp::SubtitleString i, sub.subs) {
+ stored->subs.push_back (i);
+ }
+ }
}
/** Test pass-through of a very simple DCP subtitle file */
film->set_container (Ratio::from_id ("185"));
film->set_dcp_content_type (DCPContentType::from_isdcf_name ("TLR"));
film->set_name ("frobozz");
+ film->set_interop (false);
shared_ptr<DCPSubtitleContent> content (new DCPSubtitleContent (film, "test/data/dcp_sub.xml"));
film->examine_and_add_content (content);
wait_for_jobs ();
film->examine_and_add_content (content);
wait_for_jobs ();
- shared_ptr<DCPDecoder> decoder (new DCPDecoder (content, film->log()));
- decoder->subtitle->TextData.connect (bind (store, _1));
+ shared_ptr<DCPDecoder> decoder (new DCPDecoder (content, film->log(), false));
+ decoder->subtitle->TextStart.connect (bind (store, _1));
- while (!decoder->pass() || !stored) {}
+ stored = optional<ContentTextSubtitle> ();
+ while (!decoder->pass() && !stored) {}
BOOST_REQUIRE (stored);
- BOOST_REQUIRE_EQUAL (stored->subs.size(), 1);
BOOST_REQUIRE_EQUAL (stored->subs.size(), 2);
BOOST_CHECK_EQUAL (stored->subs.front().text(), "Noch mal.");
BOOST_CHECK_EQUAL (stored->subs.back().text(), "Encore une fois.");
wait_for_jobs ();
shared_ptr<DCPSubtitleDecoder> decoder (new DCPSubtitleDecoder (content, film->log()));
- decoder->subtitle->TextData.connect (bind (store, _1));
+ decoder->subtitle->TextStart.connect (bind (store, _1));
+ stored = optional<ContentTextSubtitle> ();
while (!decoder->pass ()) {
- if (stored && stored->period().from == ContentTime(0)) {
+ if (stored && stored->from() == ContentTime(0)) {
BOOST_CHECK_EQUAL (stored->subs.front().text(), "<b>Hello world!</b>");
}
}
wait_for_jobs ();
shared_ptr<DCPSubtitleDecoder> decoder (new DCPSubtitleDecoder (content, film->log()));
+ stored = optional<ContentTextSubtitle> ();
while (!decoder->pass ()) {
- decoder->subtitle->TextData.connect (bind (store, _1));
- if (stored && stored->period().from == ContentTime::from_seconds(0.08)) {
+ decoder->subtitle->TextStart.connect (bind (store, _1));
+ if (stored && stored->from() == ContentTime::from_seconds(0.08)) {
list<dcp::SubtitleString> s = stored->subs;
list<dcp::SubtitleString>::const_iterator i = s.begin ();
BOOST_CHECK_EQUAL (i->text(), "This");