X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fmake_black_test.cc;h=88bf4bb7a5e1100bd529102d650bb6fb069011e5;hb=5a5324ed3a381a86dfe0a6e3932c1d58fdcd596f;hp=17c78d23110013c8202d002c30588781256569e0;hpb=373f010a7f04add1f49169cbaa60cb7ae5f508d4;p=dcpomatic.git diff --git a/test/make_black_test.cc b/test/make_black_test.cc index 17c78d231..88bf4bb7a 100644 --- a/test/make_black_test.cc +++ b/test/make_black_test.cc @@ -1,43 +1,54 @@ /* Copyright (C) 2012 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ -#include -#include +/** @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 extern "C" { #include } #include "lib/image.h" -#include "lib/scaler.h" +#include +#include using std::list; +using boost::make_shared; -/* Check that Image::make_black works, and doesn't use values which crash - sws_scale(). -*/ 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); @@ -48,13 +59,32 @@ BOOST_AUTO_TEST_CASE (make_black_test) 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 Image (*i, in_size, true)); + boost::shared_ptr foo = make_shared (*i, in_size, true); foo->make_black (); - boost::shared_ptr bar = foo->scale (out_size, Scaler::from_id ("bicubic"), PIX_FMT_RGB24, true); - + boost::shared_ptr bar = foo->scale (out_size, dcp::YUV_TO_RGB_REC601, AV_PIX_FMT_RGB24, true, false); + uint8_t* p = bar->data()[0]; for (int y = 0; y < bar->size().height; ++y) { uint8_t* q = p;