From 959034cec386965f41a781c3ae6929bf7b14318c Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 10 Sep 2022 18:18:45 +0200 Subject: [PATCH] Use atomic for _dcp_decode_reduction. --- src/lib/player.cc | 17 ++++++----------- src/lib/player.h | 2 +- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/lib/player.cc b/src/lib/player.cc index a6cfd9367..c3fee45b4 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -1414,19 +1414,14 @@ Player::set_dcp_decode_reduction (optional reduction) { Change (ChangeType::PENDING, PlayerProperty::DCP_DECODE_REDUCTION, false); - { - boost::mutex::scoped_lock lm (_mutex); - - if (reduction == _dcp_decode_reduction) { - lm.unlock (); - Change (ChangeType::CANCELLED, PlayerProperty::DCP_DECODE_REDUCTION, false); - return; - } - - _dcp_decode_reduction = reduction; - setup_pieces_unlocked (); + if (reduction == _dcp_decode_reduction.load()) { + Change(ChangeType::CANCELLED, PlayerProperty::DCP_DECODE_REDUCTION, false); + return; } + _dcp_decode_reduction = reduction; + setup_pieces(); + Change (ChangeType::DONE, PlayerProperty::DCP_DECODE_REDUCTION, false); } diff --git a/src/lib/player.h b/src/lib/player.h index d586622c4..ce8b7cc5a 100644 --- a/src/lib/player.h +++ b/src/lib/player.h @@ -196,7 +196,7 @@ private: /** Time of the next audio that we will emit, or the time of the last accurate seek */ boost::optional _next_audio_time; - boost::optional _dcp_decode_reduction; + boost::atomic> _dcp_decode_reduction; typedef std::map, std::shared_ptr, std::owner_less>> LastVideoMap; LastVideoMap _last_video; -- 2.30.2