X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fcpl_sar_test.cc;h=0ecc87e0239cb6890f7421bee4b8ea5691551fa0;hb=dfc34502469e9c975bf78011b0efc365c11e9779;hp=55c3bcdc477019f4a7b458b902bf3f9fbe020e60;hpb=a641fdc912a3f0749015decdf9e23ff15186ef78;p=libdcp.git diff --git a/test/cpl_sar_test.cc b/test/cpl_sar_test.cc index 55c3bcdc..0ecc87e0 100644 --- a/test/cpl_sar_test.cc +++ b/test/cpl_sar_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2014 Carl Hetherington + Copyright (C) 2014-2021 Carl Hetherington This file is part of libdcp. @@ -15,30 +15,51 @@ You should have received a copy of the GNU General Public License along with libdcp. If not, see . + + In addition, as a special exception, the copyright holders give + permission to link the code of portions of this program with the + OpenSSL library under certain conditions as described in each + individual source file, and distribute linked combinations + including the two. + + You must obey the GNU General Public License in all respects + for all of the code used other than OpenSSL. If you modify + file(s) with this exception, you may extend this exception to your + version of the file(s), but you are not obligated to do so. If you + do not wish to do so, delete this exception statement from your + version. If you delete this exception statement from all source + files in the program, then also delete it here. */ + #include "cpl.h" -#include "reel_mono_picture_asset.h" #include "mono_picture_asset.h" +#include "reel_mono_picture_asset.h" +#include "warnings.h" #include +LIBDCP_DISABLE_WARNINGS #include +LIBDCP_ENABLE_WARNINGS #include + using std::string; -using boost::shared_ptr; +using std::shared_ptr; +using std::make_shared; static void -check (shared_ptr pa, dcp::Fraction far, string sar) +check (shared_ptr pa, dcp::Fraction frac, string sar) { - pa->set_screen_aspect_ratio (far); + pa->set_screen_aspect_ratio (frac); xmlpp::Document doc; - xmlpp::Element* el = doc.create_root_node ("Test"); - pa->write_to_cpl (el, dcp::INTEROP); + auto el = doc.create_root_node ("Test"); + pa->write_to_cpl (el, dcp::Standard::INTEROP); cxml::Node node (el); BOOST_CHECK_EQUAL (node.node_child("MainPicture")->string_child ("ScreenAspectRatio"), sar); } + /** Test for a reported bug where in Interop files uses * excessive decimal places and (sometimes) the wrong decimal point character. * Also check that we correctly use one of the allowed @@ -46,46 +67,43 @@ check (shared_ptr pa, dcp::Fraction far, string sar) */ BOOST_AUTO_TEST_CASE (cpl_sar) { - shared_ptr pa ( - new dcp::ReelMonoPictureAsset ( - shared_ptr (new dcp::MonoPictureAsset ("test/ref/DCP/dcp_test1/video.mxf")), - 0 - ) + auto pa = make_shared( + make_shared("test/ref/DCP/dcp_test1/video.mxf"), 0 ); /* Easy ones */ - check (pa, dcp::Fraction (1998, 1080), "1.85"); - check (pa, dcp::Fraction (2048, 858), "2.39"); + check (pa, dcp::Fraction(1998, 1080), "1.85"); + check (pa, dcp::Fraction(2048, 858), "2.39"); /* Check the use of the allowed values */ /* Just less then, equal to and just more than 1.33 */ - check (pa, dcp::Fraction (1200, 1000), "1.33"); - check (pa, dcp::Fraction (1330, 1000), "1.33"); - check (pa, dcp::Fraction (1430, 1000), "1.33"); + check (pa, dcp::Fraction(1200, 1000), "1.33"); + check (pa, dcp::Fraction(1330, 1000), "1.33"); + check (pa, dcp::Fraction(1430, 1000), "1.33"); /* Same for 1.66 */ - check (pa, dcp::Fraction (1600, 1000), "1.66"); - check (pa, dcp::Fraction (1660, 1000), "1.66"); - check (pa, dcp::Fraction (1670, 1000), "1.66"); + check (pa, dcp::Fraction(1600, 1000), "1.66"); + check (pa, dcp::Fraction(1660, 1000), "1.66"); + check (pa, dcp::Fraction(1670, 1000), "1.66"); /* 1.77 */ - check (pa, dcp::Fraction (1750, 1000), "1.77"); - check (pa, dcp::Fraction (1770, 1000), "1.77"); - check (pa, dcp::Fraction (1800, 1000), "1.77"); + check (pa, dcp::Fraction(1750, 1000), "1.77"); + check (pa, dcp::Fraction(1770, 1000), "1.77"); + check (pa, dcp::Fraction(1800, 1000), "1.77"); /* 1.85 */ - check (pa, dcp::Fraction (1820, 1000), "1.85"); - check (pa, dcp::Fraction (1850, 1000), "1.85"); - check (pa, dcp::Fraction (1910, 1000), "1.85"); + check (pa, dcp::Fraction(1820, 1000), "1.85"); + check (pa, dcp::Fraction(1850, 1000), "1.85"); + check (pa, dcp::Fraction(1910, 1000), "1.85"); /* 2.00 */ - check (pa, dcp::Fraction (1999, 1000), "2.00"); - check (pa, dcp::Fraction (2000, 1000), "2.00"); - check (pa, dcp::Fraction (2001, 1000), "2.00"); + check (pa, dcp::Fraction(1999, 1000), "2.00"); + check (pa, dcp::Fraction(2000, 1000), "2.00"); + check (pa, dcp::Fraction(2001, 1000), "2.00"); /* 2.39 */ - check (pa, dcp::Fraction (2350, 1000), "2.39"); - check (pa, dcp::Fraction (2390, 1000), "2.39"); - check (pa, dcp::Fraction (2500, 1000), "2.39"); + check (pa, dcp::Fraction(2350, 1000), "2.39"); + check (pa, dcp::Fraction(2390, 1000), "2.39"); + check (pa, dcp::Fraction(2500, 1000), "2.39"); }