X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fvideo_content_scale_test.cc;h=202243dd8bdab4a50c94e0afdafaa568c3829882;hb=67a68bd971ebe1b35daa3f75873b4ccb53c00ba0;hp=8c3bd431acd20536c3fc3fa3b94789ca3a8923cd;hpb=3f25d51e1e254b55fff65d6bdc23692746a0d15b;p=dcpomatic.git diff --git a/test/video_content_scale_test.cc b/test/video_content_scale_test.cc index 8c3bd431a..202243dd8 100644 --- a/test/video_content_scale_test.cc +++ b/test/video_content_scale_test.cc @@ -1,40 +1,47 @@ /* 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" @@ -43,26 +50,26 @@ test (dcp::Size content_size, dcp::Size display_size, dcp::Size film_size, Crop "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" "12" - "" << crop.left << "" - "" << crop.right << "" - "" << crop.top << "" - "" << crop.bottom << "" + "" + 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" @@ -86,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 (film, doc, 10, notes)); optional sc; if (ratio) { @@ -98,9 +105,9 @@ 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"; }