From 989f182558193a51e0a26603fb2ca59f827216a0 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 2 Feb 2015 22:33:27 +0000 Subject: Remove Image and ARGBImage and just dump RGB data into uint8_t* buffers. This is hopefully simpler than trying to come up with some Image hierarchy that suits everything. --- test/decryption_test.cc | 40 ++++++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 10 deletions(-) (limited to 'test/decryption_test.cc') diff --git a/test/decryption_test.cc b/test/decryption_test.cc index a28f3c64..282e74f3 100644 --- a/test/decryption_test.cc +++ b/test/decryption_test.cc @@ -17,22 +17,28 @@ */ -#include #include "dcp.h" #include "mono_picture_frame.h" #include "cpl.h" #include "decrypted_kdm.h" #include "encrypted_kdm.h" -#include "argb_image.h" #include "mono_picture_mxf.h" #include "reel_picture_asset.h" #include "reel.h" #include "test.h" +#include "xyz_image.h" +#include "rgb_xyz.h" +#include "colour_conversion.h" +#include +#include +using std::pair; +using std::make_pair; using boost::dynamic_pointer_cast; using boost::shared_ptr; +using boost::scoped_array; -static shared_ptr +pair get_frame (dcp::DCP const & dcp) { shared_ptr reel = dcp.cpls().front()->reels().front (); @@ -41,7 +47,11 @@ get_frame (dcp::DCP const & dcp) shared_ptr mono_picture = dynamic_pointer_cast (picture); shared_ptr j2k_frame = mono_picture->get_frame (0); - return j2k_frame->argb_image (); + shared_ptr xyz = j2k_frame->xyz_image(); + + uint8_t* argb = new uint8_t[xyz->size().width * xyz->size().height * 4]; + dcp::xyz_to_rgba (j2k_frame->xyz_image(), dcp::ColourConversion::xyz_to_srgb(), argb); + return make_pair (argb, xyz->size ()); } /** Decrypt an encrypted test DCP and check that its first frame is the same as the unencrypted version */ @@ -68,14 +78,24 @@ BOOST_AUTO_TEST_CASE (decryption_test) encrypted.add (kdm); - shared_ptr plaintext_frame = get_frame (plaintext); - shared_ptr encrypted_frame = get_frame (encrypted); + pair plaintext_frame = get_frame (plaintext); + pair encrypted_frame = get_frame (encrypted); /* Check that plaintext and encrypted are the same */ - BOOST_CHECK_EQUAL (plaintext_frame->stride(), encrypted_frame->stride()); - BOOST_CHECK_EQUAL (plaintext_frame->size().width, encrypted_frame->size().width); - BOOST_CHECK_EQUAL (plaintext_frame->size().height, encrypted_frame->size().height); - BOOST_CHECK_EQUAL (memcmp (plaintext_frame->data(), encrypted_frame->data(), plaintext_frame->stride() * plaintext_frame->size().height), 0); + + BOOST_CHECK_EQUAL (plaintext_frame.second, encrypted_frame.second); + + BOOST_CHECK_EQUAL ( + memcmp ( + plaintext_frame.first, + encrypted_frame.first, + plaintext_frame.second.width * plaintext_frame.second.height * 4 + ), + 0 + ); + + delete[] plaintext_frame.first; + delete[] encrypted_frame.first; } /** Load in a KDM that didn't work at first */ -- cgit v1.2.3