Fix preview update when fade is changed (#1531).
authorCarl Hetherington <cth@carlh.net>
Thu, 25 Apr 2019 15:33:16 +0000 (16:33 +0100)
committerCarl Hetherington <cth@carlh.net>
Thu, 25 Apr 2019 15:33:16 +0000 (16:33 +0100)
src/lib/player_video.cc
src/lib/player_video.h

index 5c287dc92d3cbdf1bd48f66af90be17af41edd3c..e36eb1984438add8e0ca4ac98f4d4daf7276b1dd 100644 (file)
@@ -105,10 +105,10 @@ PlayerVideo::set_text (PositionImage image)
 shared_ptr<Image>
 PlayerVideo::image (function<AVPixelFormat (AVPixelFormat)> pixel_format, bool aligned, bool fast) const
 {
-       /* XXX: this assumes that image() and prepare() are only ever called with the same parameters (except crop, inter size, out size) */
+       /* XXX: this assumes that image() and prepare() are only ever called with the same parameters (except crop, inter size, out size, fade) */
 
        boost::mutex::scoped_lock lm (_mutex);
-       if (!_image || _crop != _image_crop || _inter_size != _image_inter_size || _out_size != _image_out_size) {
+       if (!_image || _crop != _image_crop || _inter_size != _image_inter_size || _out_size != _image_out_size || _fade != _image_fade) {
                make_image (pixel_format, aligned, fast);
        }
        return _image;
@@ -127,6 +127,7 @@ PlayerVideo::make_image (function<AVPixelFormat (AVPixelFormat)> pixel_format, b
        _image_crop = _crop;
        _image_inter_size = _inter_size;
        _image_out_size = _out_size;
+       _image_fade = _fade;
 
        pair<shared_ptr<Image>, int> prox = _in->image (_inter_size);
        shared_ptr<Image> im = prox.first;
index 928dfc690a9f3aea0c82fc4334837e5923bd8c2e..c38d60641f71f499210ccf41ed577f1abec65e09 100644 (file)
@@ -133,6 +133,8 @@ private:
        mutable dcp::Size _image_inter_size;
        /** _out_size that was used to make _image */
        mutable dcp::Size _image_out_size;
+       /** _fade that was used to make _image */
+       mutable boost::optional<double> _image_fade;
 };
 
 #endif