From ff06669bc8c14abe40cd9590afc8391f19608424 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 5 Jan 2019 00:50:20 +0000 Subject: [PATCH] Fix strange behaviour with single-frame fades (#1440). --- ChangeLog | 4 +++ src/lib/player_video.cc | 2 +- src/lib/video_content.cc | 4 ++- test/data | 2 +- test/image_content_fade_test.cc | 44 +++++++++++++++++++++++++++++++++ test/wscript | 1 + 6 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 test/image_content_fade_test.cc diff --git a/ChangeLog b/ChangeLog index f2381c006..5bc7bf760 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2019-01-05 Carl Hetherington + + * Fix strange behaviour with single-frame fades. + 2018-12-29 Carl Hetherington * Updated fr_FR translation from Thierry Journet. diff --git a/src/lib/player_video.cc b/src/lib/player_video.cc index 023ab826a..5c287dc92 100644 --- a/src/lib/player_video.cc +++ b/src/lib/player_video.cc @@ -243,7 +243,7 @@ bool PlayerVideo::same (shared_ptr other) const { if (_crop != other->_crop || - _fade.get_value_or(0) != other->_fade.get_value_or(0) || + _fade != other->_fade || _inter_size != other->_inter_size || _out_size != other->_out_size || _eyes != other->_eyes || diff --git a/src/lib/video_content.cc b/src/lib/video_content.cc index 932977858..fe35b0df3 100644 --- a/src/lib/video_content.cc +++ b/src/lib/video_content.cc @@ -354,7 +354,9 @@ VideoContent::scale_and_crop_to_fit_height (shared_ptr film) set_bottom_crop (0); } -/** @param f Frame index within the whole (untrimmed) content */ +/** @param f Frame index within the whole (untrimmed) content. + * @return Fade factor (between 0 and 1) or unset if there is no fade. + */ optional VideoContent::fade (shared_ptr film, Frame f) const { diff --git a/test/data b/test/data index 8e5bb30bd..1f6543913 160000 --- a/test/data +++ b/test/data @@ -1 +1 @@ -Subproject commit 8e5bb30bd87cc81d55da1653301c9b338a54622a +Subproject commit 1f6543913f7ef1497bd0b3f53e796216a05fc81a diff --git a/test/image_content_fade_test.cc b/test/image_content_fade_test.cc new file mode 100644 index 000000000..a3f093204 --- /dev/null +++ b/test/image_content_fade_test.cc @@ -0,0 +1,44 @@ +/* + Copyright (C) 2019 Carl Hetherington + + 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. + + 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 DCP-o-matic. If not, see . + +*/ + +#include "test.h" +#include "lib/film.h" +#include "lib/content_factory.h" +#include "lib/content.h" +#include "lib/video_content.h" +#include + +using std::string; +using std::list; +using boost::shared_ptr; + +BOOST_AUTO_TEST_CASE (image_content_fade_test) +{ + shared_ptr film = new_test_film2 ("image_content_fade_test"); + shared_ptr content = content_factory("test/data/flat_red.png").front(); + film->examine_and_add_content (content); + wait_for_jobs (); + + content->video->set_fade_in (1); + film->make_dcp (); + wait_for_jobs (); + + check_dcp ("test/data/image_content_fade_test", film->dir(film->dcp_name())); +} diff --git a/test/wscript b/test/wscript index 23f31dadc..396c713d1 100644 --- a/test/wscript +++ b/test/wscript @@ -76,6 +76,7 @@ def build(bld): file_naming_test.cc film_metadata_test.cc frame_rate_test.cc + image_content_fade_test.cc image_filename_sorter_test.cc image_test.cc import_dcp_test.cc -- 2.30.2