X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Ftest.cc;h=5f6d687ac506cded67e844a386494333a580c430;hb=be1b34275e14d2584e233ac2a81d3dc44a97c208;hp=87ec15be9886e38bb93a0edd0fb532ec6955ea6e;hpb=cafa76a2b52449ce3c9eecfd0ea53b7318814951;p=dcpomatic.git diff --git a/test/test.cc b/test/test.cc index 87ec15be9..5f6d687ac 100644 --- a/test/test.cc +++ b/test/test.cc @@ -27,7 +27,6 @@ #include "job_manager.h" #include "util.h" #include "exceptions.h" -#include "dvd.h" #include "delay_line.h" #include "image.h" #include "log.h" @@ -56,8 +55,6 @@ void setup_test_config () { Config::instance()->set_num_local_encoding_threads (1); - Config::instance()->set_colour_lut_index (0); - Config::instance()->set_j2k_bandwidth (200000000); Config::instance()->set_servers (vector ()); Config::instance()->set_server_port (61920); } @@ -195,24 +192,6 @@ BOOST_AUTO_TEST_CASE (util_test) BOOST_CHECK_EQUAL (*i++, "them"); } -BOOST_AUTO_TEST_CASE (dvd_test) -{ - list const t = dvd_titles ("test/dvd"); - BOOST_CHECK_EQUAL (t.size(), 3); - list::const_iterator i = t.begin (); - - BOOST_CHECK_EQUAL (i->number, 1); - BOOST_CHECK_EQUAL (i->size, 0); - ++i; - - BOOST_CHECK_EQUAL (i->number, 2); - BOOST_CHECK_EQUAL (i->size, 14); - ++i; - - BOOST_CHECK_EQUAL (i->number, 3); - BOOST_CHECK_EQUAL (i->size, 7); -} - class NullLog : public Log { public: @@ -326,10 +305,6 @@ BOOST_AUTO_TEST_CASE (paths_test) { shared_ptr f = new_test_film ("paths_test"); f->set_directory ("build/test/a/b/c/d/e"); - vector thumbs; - thumbs.push_back (42); - f->set_thumbs (thumbs); - BOOST_CHECK_EQUAL (f->thumb_file (0), "build/test/a/b/c/d/e/thumbs/00000042.png"); f->_content = "/foo/bar/baz"; BOOST_CHECK_EQUAL (f->content_path(), "/foo/bar/baz"); @@ -338,7 +313,7 @@ BOOST_AUTO_TEST_CASE (paths_test) } void -do_remote_encode (shared_ptr frame, ServerDescription* description, shared_ptr locally_encoded, int N) +do_remote_encode (shared_ptr frame, ServerDescription* description, shared_ptr locally_encoded) { shared_ptr remotely_encoded; BOOST_CHECK_NO_THROW (remotely_encoded = frame->encode_remotely (description)); @@ -350,7 +325,7 @@ do_remote_encode (shared_ptr frame, ServerDescription* descriptio BOOST_AUTO_TEST_CASE (client_server_test) { - shared_ptr image (new CompactImage (PIX_FMT_RGB24, Size (1998, 1080))); + shared_ptr image (new SimpleImage (PIX_FMT_RGB24, libdcp::Size (1998, 1080), false)); uint8_t* p = image->data()[0]; for (int y = 0; y < 1080; ++y) { @@ -361,7 +336,7 @@ BOOST_AUTO_TEST_CASE (client_server_test) } } - shared_ptr sub_image (new CompactImage (PIX_FMT_RGBA, Size (100, 200))); + shared_ptr sub_image (new SimpleImage (PIX_FMT_RGBA, libdcp::Size (100, 200), false)); p = sub_image->data()[0]; for (int y = 0; y < 200; ++y) { for (int x = 0; x < 100; ++x) { @@ -380,7 +355,7 @@ BOOST_AUTO_TEST_CASE (client_server_test) new DCPVideoFrame ( image, subtitle, - Size (1998, 1080), + libdcp::Size (1998, 1080), 0, 0, 1, @@ -408,7 +383,7 @@ BOOST_AUTO_TEST_CASE (client_server_test) list threads; for (int i = 0; i < 8; ++i) { - threads.push_back (new thread (boost::bind (do_remote_encode, frame, &description, locally_encoded, i))); + threads.push_back (new thread (boost::bind (do_remote_encode, frame, &description, locally_encoded))); } for (list::iterator i = threads.begin(); i != threads.end(); ++i) { @@ -554,3 +529,101 @@ BOOST_AUTO_TEST_CASE (job_manager_test) BOOST_CHECK_EQUAL (b->running(), false); } +BOOST_AUTO_TEST_CASE (compact_image_test) +{ + SimpleImage* s = new SimpleImage (PIX_FMT_RGB24, libdcp::Size (50, 50), false); + BOOST_CHECK_EQUAL (s->components(), 1); + BOOST_CHECK_EQUAL (s->stride()[0], 50 * 3); + BOOST_CHECK_EQUAL (s->line_size()[0], 50 * 3); + BOOST_CHECK (s->data()[0]); + BOOST_CHECK (!s->data()[1]); + BOOST_CHECK (!s->data()[2]); + BOOST_CHECK (!s->data()[3]); + + /* copy constructor */ + SimpleImage* t = new SimpleImage (*s); + BOOST_CHECK_EQUAL (t->components(), 1); + BOOST_CHECK_EQUAL (t->stride()[0], 50 * 3); + BOOST_CHECK_EQUAL (t->line_size()[0], 50 * 3); + BOOST_CHECK (t->data()[0]); + BOOST_CHECK (!t->data()[1]); + BOOST_CHECK (!t->data()[2]); + BOOST_CHECK (!t->data()[3]); + BOOST_CHECK (t->data() != s->data()); + BOOST_CHECK (t->data()[0] != s->data()[0]); + BOOST_CHECK (t->line_size() != s->line_size()); + BOOST_CHECK (t->line_size()[0] == s->line_size()[0]); + BOOST_CHECK (t->stride() != s->stride()); + BOOST_CHECK (t->stride()[0] == s->stride()[0]); + + /* assignment operator */ + SimpleImage* u = new SimpleImage (PIX_FMT_YUV422P, libdcp::Size (150, 150), true); + *u = *s; + BOOST_CHECK_EQUAL (u->components(), 1); + BOOST_CHECK_EQUAL (u->stride()[0], 50 * 3); + BOOST_CHECK_EQUAL (u->line_size()[0], 50 * 3); + BOOST_CHECK (u->data()[0]); + BOOST_CHECK (!u->data()[1]); + BOOST_CHECK (!u->data()[2]); + BOOST_CHECK (!u->data()[3]); + BOOST_CHECK (u->data() != s->data()); + BOOST_CHECK (u->data()[0] != s->data()[0]); + BOOST_CHECK (u->line_size() != s->line_size()); + BOOST_CHECK (u->line_size()[0] == s->line_size()[0]); + BOOST_CHECK (u->stride() != s->stride()); + BOOST_CHECK (u->stride()[0] == s->stride()[0]); + + delete s; + delete t; + delete u; +} + +BOOST_AUTO_TEST_CASE (aligned_image_test) +{ + SimpleImage* s = new SimpleImage (PIX_FMT_RGB24, libdcp::Size (50, 50), true); + BOOST_CHECK_EQUAL (s->components(), 1); + /* 160 is 150 aligned to the nearest 32 bytes */ + BOOST_CHECK_EQUAL (s->stride()[0], 160); + BOOST_CHECK_EQUAL (s->line_size()[0], 150); + BOOST_CHECK (s->data()[0]); + BOOST_CHECK (!s->data()[1]); + BOOST_CHECK (!s->data()[2]); + BOOST_CHECK (!s->data()[3]); + + /* copy constructor */ + SimpleImage* t = new SimpleImage (*s); + BOOST_CHECK_EQUAL (t->components(), 1); + BOOST_CHECK_EQUAL (t->stride()[0], 160); + BOOST_CHECK_EQUAL (t->line_size()[0], 150); + BOOST_CHECK (t->data()[0]); + BOOST_CHECK (!t->data()[1]); + BOOST_CHECK (!t->data()[2]); + BOOST_CHECK (!t->data()[3]); + BOOST_CHECK (t->data() != s->data()); + BOOST_CHECK (t->data()[0] != s->data()[0]); + BOOST_CHECK (t->line_size() != s->line_size()); + BOOST_CHECK (t->line_size()[0] == s->line_size()[0]); + BOOST_CHECK (t->stride() != s->stride()); + BOOST_CHECK (t->stride()[0] == s->stride()[0]); + + /* assignment operator */ + SimpleImage* u = new SimpleImage (PIX_FMT_YUV422P, libdcp::Size (150, 150), false); + *u = *s; + BOOST_CHECK_EQUAL (u->components(), 1); + BOOST_CHECK_EQUAL (u->stride()[0], 160); + BOOST_CHECK_EQUAL (u->line_size()[0], 150); + BOOST_CHECK (u->data()[0]); + BOOST_CHECK (!u->data()[1]); + BOOST_CHECK (!u->data()[2]); + BOOST_CHECK (!u->data()[3]); + BOOST_CHECK (u->data() != s->data()); + BOOST_CHECK (u->data()[0] != s->data()[0]); + BOOST_CHECK (u->line_size() != s->line_size()); + BOOST_CHECK (u->line_size()[0] == s->line_size()[0]); + BOOST_CHECK (u->stride() != s->stride()); + BOOST_CHECK (u->stride()[0] == s->stride()[0]); + + delete s; + delete t; + delete u; +}