X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=test%2Fvideo_content_scale_test.cc;h=67bfda3e5afae3f6e2f6c81a091b949d53ac6f8e;hp=d2ee4c0d83c8408b0b98eaf9e2be744279a7668f;hb=e81c5eb9e8ff875240dde9fdaaab0a46f99af615;hpb=ae15eeca8588c6928d7671894db98c2e289fa601 diff --git a/test/video_content_scale_test.cc b/test/video_content_scale_test.cc index d2ee4c0d8..67bfda3e5 100644 --- a/test/video_content_scale_test.cc +++ b/test/video_content_scale_test.cc @@ -1,67 +1,75 @@ /* Copyright (C) 2015 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 +/** @file test/video_content_scale_test.cc + * @brief Test VideoContentScale + * @ingroup selfcontained + */ + #include "lib/ffmpeg_content.h" #include "lib/ratio.h" +#include "lib/video_content.h" +#include +#include using std::list; using std::string; using std::cerr; -using std::stringstream; using boost::shared_ptr; using boost::optional; +using dcp::raw_convert; static void test (dcp::Size content_size, dcp::Size display_size, dcp::Size film_size, Crop crop, Ratio const * ratio, bool scale, dcp::Size correct) { shared_ptr film; - stringstream s; - s << "" + string s = "" "" "FFmpeg" - "/home/c.hetherington/DCP/prophet_clip.mkv" + "/home/c.hetherington/DCP/prophet_long_clip.mkv" "f3f23663da5bef6d2cbaa0db066f3351314142710" "0" "0" "0" "2879" - "" << content_size.width << "" - "" << content_size.height << "" + "" + raw_convert(content_size.width) + "" + "" + raw_convert(content_size.height) + "" "23.97602462768555" "23.97602462768555" "0" "1" - "" << crop.left << "" - "" << crop.right << "" - "" << crop.top << "" - "" << crop.bottom << "" + "12" + "" + raw_convert(crop.left) + "" + "" + raw_convert(crop.right) + "" + "" + raw_convert(crop.top) + "" + "" + raw_convert(crop.bottom) + "" ""; if (ratio) { - s << "" << ratio->id() << ""; + s += "" + ratio->id() + ""; } else { - s << "" << scale << ""; + s += "" + string(scale ? "1" : "0") + ""; } - s << "" + s += "" "" "2.4" "1" @@ -85,10 +93,10 @@ test (dcp::Size content_size, dcp::Size display_size, dcp::Size film_size, Crop ""; shared_ptr doc (new cxml::Document ()); - doc->read_string(s.str ()); + doc->read_string (s); list notes; - shared_ptr vc (new FFmpegContent (film, doc, 10, notes)); + shared_ptr vc (new FFmpegContent (doc, 10, notes)); optional sc; if (ratio) { @@ -97,15 +105,15 @@ test (dcp::Size content_size, dcp::Size display_size, dcp::Size film_size, Crop sc = VideoContentScale (scale); } - dcp::Size answer = sc.get().size (vc, display_size, film_size); + dcp::Size answer = sc.get().size (vc->video, display_size, film_size); if (answer != correct) { - cerr << "Testing " << vc->video_size().width << "x" << vc->video_size().height << "\n"; + cerr << "Testing " << vc->video->size().width << "x" << vc->video->size().height << "\n"; cerr << "Testing " << display_size.width << "x" << display_size.height << "\n"; cerr << answer.width << "x" << answer.height << " instead of " << correct.width << "x" << correct.height << "\n"; } BOOST_CHECK (answer == correct); } - + /* Test scale and stretch to specified ratio */ BOOST_AUTO_TEST_CASE (video_content_scale_test_to_ratio) { @@ -132,7 +140,7 @@ BOOST_AUTO_TEST_CASE (video_content_scale_test_to_ratio) true, dcp::Size (1998, 837) ); - + // Flat in scope container test ( dcp::Size (400, 200), @@ -144,7 +152,7 @@ BOOST_AUTO_TEST_CASE (video_content_scale_test_to_ratio) dcp::Size (1587, 858) ); - + /* To player */ // Flat in flat container @@ -168,7 +176,7 @@ BOOST_AUTO_TEST_CASE (video_content_scale_test_to_ratio) true, dcp::Size (185, 78) ); - + // Flat in scope container test ( dcp::Size (400, 200),