- Reader ref_r (ref);
- Reader check_r (check);
-
- BOOST_REQUIRE_EQUAL (ref_r.format_context->nb_streams, check_r.format_context->nb_streams);
+ dcp::DCP dcp (dcp_dir);
+ dcp.read ();
+ shared_ptr<dcp::MonoPictureAsset> asset = dynamic_pointer_cast<dcp::MonoPictureAsset> (dcp.cpls().front()->reels().front()->main_picture()->asset());
+ BOOST_REQUIRE (asset);
+ shared_ptr<const dcp::MonoPictureFrame> frame = asset->start_read()->get_frame(index);
+ shared_ptr<const dcp::MonoPictureFrame> ref_frame (new dcp::MonoPictureFrame (ref));
+
+ shared_ptr<dcp::OpenJPEGImage> image = frame->xyz_image ();
+ shared_ptr<dcp::OpenJPEGImage> ref_image = ref_frame->xyz_image ();
+
+ BOOST_REQUIRE (image->size() == ref_image->size());
+
+ int off = 0;
+ for (int y = 0; y < ref_image->size().height; ++y) {
+ for (int x = 0; x < ref_image->size().width; ++x) {
+ BOOST_REQUIRE_EQUAL (ref_image->data(0)[off], image->data(0)[off]);
+ BOOST_REQUIRE_EQUAL (ref_image->data(1)[off], image->data(1)[off]);
+ BOOST_REQUIRE_EQUAL (ref_image->data(2)[off], image->data(2)[off]);
+ ++off;
+ }
+ }
+}