X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fplayer.cc;h=a6cfd9367102866f75eee399421c3673dad3ea85;hb=bd9098f7fa9f8415da12ac0f08a1087c68f6baf6;hp=6361d7b2acc1f3d0d6fb523d15d72107f9449a9f;hpb=de522946acfd022b5084434fbcfd225499a17293;p=dcpomatic.git diff --git a/src/lib/player.cc b/src/lib/player.cc index 6361d7b2a..a6cfd9367 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -105,6 +105,7 @@ Player::Player (shared_ptr film, Image::Alignment subtitle_alignment , _always_burn_open_subtitles(false) , _fast(false) , _tolerant (film->tolerant()) + , _play_referenced(false) , _audio_merger (_film->audio_frame_rate()) , _subtitle_alignment (subtitle_alignment) { @@ -122,6 +123,7 @@ Player::Player (shared_ptr film, shared_ptr playlist , _always_burn_open_subtitles(false) , _fast(false) , _tolerant (film->tolerant()) + , _play_referenced(false) , _audio_merger (_film->audio_frame_rate()) { construct (); @@ -343,17 +345,15 @@ Player::set_video_container_size (dcp::Size s) { Change (ChangeType::PENDING, PlayerProperty::VIDEO_CONTAINER_SIZE, false); - { - boost::mutex::scoped_lock lm (_mutex); - - if (s == _video_container_size) { - lm.unlock (); - Change (ChangeType::CANCELLED, PlayerProperty::VIDEO_CONTAINER_SIZE, false); - return; - } + if (s == _video_container_size) { + Change(ChangeType::CANCELLED, PlayerProperty::VIDEO_CONTAINER_SIZE, false); + return; + } - _video_container_size = s; + _video_container_size = s; + { + boost::mutex::scoped_lock lm (_mutex); _black_image = make_shared(AV_PIX_FMT_RGB24, _video_container_size, Image::Alignment::PADDED); _black_image->make_black (); } @@ -549,9 +549,8 @@ Player::set_fast () void Player::set_play_referenced () { - boost::mutex::scoped_lock lm (_mutex); _play_referenced = true; - setup_pieces_unlocked (); + setup_pieces(); } @@ -869,14 +868,14 @@ Player::open_subtitles_for_frame (DCPTime time) const } /* i.image will already have been scaled to fit _video_container_size */ - dcp::Size scaled_size (i.rectangle.width * _video_container_size.width, i.rectangle.height * _video_container_size.height); + dcp::Size scaled_size (i.rectangle.width * _video_container_size.load().width, i.rectangle.height * _video_container_size.load().height); captions.push_back ( PositionImage ( i.image, Position ( - lrint(_video_container_size.width * i.rectangle.x), - lrint(_video_container_size.height * i.rectangle.y) + lrint(_video_container_size.load().width * i.rectangle.x), + lrint(_video_container_size.load().height * i.rectangle.y) ) ) ); @@ -1139,8 +1138,8 @@ Player::bitmap_text_start (weak_ptr weak_piece, weak_ptr