_video_container_size = s;
{
- boost::mutex::scoped_lock lm (_mutex);
+ boost::mutex::scoped_lock lm(_black_image_mutex);
_black_image = make_shared<Image>(AV_PIX_FMT_RGB24, _video_container_size, Image::Alignment::PADDED);
_black_image->make_black ();
}
shared_ptr<PlayerVideo>
Player::black_player_video_frame (Eyes eyes) const
{
+ boost::mutex::scoped_lock lm(_black_image_mutex);
+
return std::make_shared<PlayerVideo> (
std::make_shared<const RawImageProxy>(_black_image),
Crop(),
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;
}
}
- 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;