Use atomic for _playback_length.
authorCarl Hetherington <cth@carlh.net>
Sat, 10 Sep 2022 17:14:04 +0000 (19:14 +0200)
committerCarl Hetherington <cth@carlh.net>
Sat, 10 Sep 2022 21:21:06 +0000 (23:21 +0200)
src/lib/player.cc
src/lib/player.h

index b3f11c8000a62c086fa686d84868f5822b0ef7d1..9cc7e5d25b31567c7e80cb003000e71452aaf76a 100644 (file)
@@ -557,7 +557,7 @@ Player::pass ()
                return false;
        }
 
-       if (_playback_length == DCPTime()) {
+       if (_playback_length.load() == DCPTime()) {
                /* Special; just give one black frame */
                emit_video (black_player_video_frame(Eyes::BOTH), DCPTime());
                return true;
@@ -695,7 +695,7 @@ Player::pass ()
                }
        }
 
-       auto pull_to = _playback_length;
+       auto pull_to = _playback_length.load();
        for (auto const& i: alive_stream_states) {
                if (!i.second.piece->done && i.second.last_push_end < pull_to) {
                        pull_to = i.second.last_push_end;
index e07cc8200a3bb9af2d15b51856511e1902f311c4..388a160c79727e10069ed9cc8039373177ed4d08 100644 (file)
@@ -225,7 +225,7 @@ private:
        ActiveText _active_texts[static_cast<int>(TextType::COUNT)];
        std::shared_ptr<AudioProcessor> _audio_processor;
 
-       dcpomatic::DCPTime _playback_length;
+       boost::atomic<dcpomatic::DCPTime> _playback_length;
 
        /** Alignment for subtitle images that we create */
        Image::Alignment const _subtitle_alignment = Image::Alignment::PADDED;