X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=test%2Fmake_black_test.cc;h=f6c3a4bb2bbc87616ffc3cfbeb84a3ffacc07704;hp=76f38d676a94a4321812da0220678b4379678e1c;hb=f2416324fdaef8d75678da751446113fbe19de8a;hpb=c45fd99b0b4a193edcebccc927793d48431a5a13 diff --git a/test/make_black_test.cc b/test/make_black_test.cc index 76f38d676..f6c3a4bb2 100644 --- a/test/make_black_test.cc +++ b/test/make_black_test.cc @@ -17,34 +17,79 @@ */ -/* Check that Image::make_black works, and doesn't use values which crash - sws_scale(). -*/ +/** @file test/make_black_test.cc + * @brief Check that Image::make_black works, and doesn't use values which crash + * sws_scale(). + * + * @see test/image_test.cc + */ + +#include +#include +extern "C" { +#include +} +#include "lib/image.h" +#include "lib/scaler.h" + +using std::list; + BOOST_AUTO_TEST_CASE (make_black_test) { - libdcp::Size in_size (512, 512); - libdcp::Size out_size (1024, 1024); + dcp::Size in_size (512, 512); + dcp::Size out_size (1024, 1024); list pix_fmts; - pix_fmts.push_back (AV_PIX_FMT_RGB24); - pix_fmts.push_back (AV_PIX_FMT_YUV420P); + pix_fmts.push_back (AV_PIX_FMT_RGB24); // 2 + pix_fmts.push_back (AV_PIX_FMT_ARGB); + pix_fmts.push_back (AV_PIX_FMT_RGBA); + pix_fmts.push_back (AV_PIX_FMT_ABGR); + pix_fmts.push_back (AV_PIX_FMT_BGRA); + pix_fmts.push_back (AV_PIX_FMT_YUV420P); // 0 + pix_fmts.push_back (AV_PIX_FMT_YUV411P); pix_fmts.push_back (AV_PIX_FMT_YUV422P10LE); + pix_fmts.push_back (AV_PIX_FMT_YUV422P16LE); pix_fmts.push_back (AV_PIX_FMT_YUV444P9LE); pix_fmts.push_back (AV_PIX_FMT_YUV444P9BE); pix_fmts.push_back (AV_PIX_FMT_YUV444P10LE); pix_fmts.push_back (AV_PIX_FMT_YUV444P10BE); pix_fmts.push_back (AV_PIX_FMT_UYVY422); - + pix_fmts.push_back (AV_PIX_FMT_YUVJ420P); + pix_fmts.push_back (AV_PIX_FMT_YUVJ422P); + pix_fmts.push_back (AV_PIX_FMT_YUVJ444P); + pix_fmts.push_back (AV_PIX_FMT_YUVA420P9BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA422P9BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA444P9BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA420P9LE); + pix_fmts.push_back (AV_PIX_FMT_YUVA422P9LE); + pix_fmts.push_back (AV_PIX_FMT_YUVA444P9LE); + pix_fmts.push_back (AV_PIX_FMT_YUVA420P10BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA422P10BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA444P10BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA420P10LE); + pix_fmts.push_back (AV_PIX_FMT_YUVA422P10LE); + pix_fmts.push_back (AV_PIX_FMT_YUVA444P10LE); + pix_fmts.push_back (AV_PIX_FMT_YUVA420P16BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA422P16BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA444P16BE); + pix_fmts.push_back (AV_PIX_FMT_YUVA420P16LE); + pix_fmts.push_back (AV_PIX_FMT_YUVA422P16LE); + pix_fmts.push_back (AV_PIX_FMT_YUVA444P16LE); + pix_fmts.push_back (AV_PIX_FMT_RGB555LE); // 46 + int N = 0; for (list::const_iterator i = pix_fmts.begin(); i != pix_fmts.end(); ++i) { - boost::shared_ptr foo (new SimpleImage (*i, in_size, true)); + boost::shared_ptr foo (new Image (*i, in_size, true)); foo->make_black (); - boost::shared_ptr bar = foo->scale_and_convert_to_rgb (out_size, 0, Scaler::from_id ("bicubic"), true); + boost::shared_ptr bar = foo->scale (out_size, Scaler::from_id ("bicubic"), PIX_FMT_RGB24, true); uint8_t* p = bar->data()[0]; for (int y = 0; y < bar->size().height; ++y) { uint8_t* q = p; for (int x = 0; x < bar->line_size()[0]; ++x) { + if (*q != 0) { + std::cerr << "x=" << x << ", (x%3)=" << (x%3) << "\n"; + } BOOST_CHECK_EQUAL (*q++, 0); } p += bar->stride()[0];