From: Carl Hetherington Date: Wed, 25 Apr 2018 23:22:52 +0000 (+0100) Subject: Signal when streams change and rebuild player pieces when it happens. X-Git-Tag: v2.13.17~2 X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=131646786964241429888af6296e4ff089ce5900 Signal when streams change and rebuild player pieces when it happens. --- diff --git a/src/lib/dcp_content.cc b/src/lib/dcp_content.cc index 7d9766a7c..b5209e2c7 100644 --- a/src/lib/dcp_content.cc +++ b/src/lib/dcp_content.cc @@ -155,16 +155,11 @@ DCPContent::examine (shared_ptr job) video->take_from_examiner (examiner); set_default_colour_conversion (); - { - boost::mutex::scoped_lock lm (_mutex); - - AudioStreamPtr as (new AudioStream (examiner->audio_frame_rate(), examiner->audio_length(), examiner->audio_channels())); - audio->set_stream (as); - AudioMapping m = as->mapping (); - film()->make_audio_mapping_default (m); - as->set_mapping (m); - } - + AudioStreamPtr as (new AudioStream (examiner->audio_frame_rate(), examiner->audio_length(), examiner->audio_channels())); + audio->set_stream (as); + AudioMapping m = as->mapping (); + film()->make_audio_mapping_default (m); + as->set_mapping (m); signal_changed (AudioContentProperty::STREAMS); bool has_subtitles = false; @@ -202,6 +197,8 @@ DCPContent::examine (shared_ptr job) signal_changed (DCPContentProperty::NAME); } + signal_changed (AudioContentProperty::STREAMS); + video->set_frame_type (_three_d ? VIDEO_FRAME_TYPE_3D : VIDEO_FRAME_TYPE_2D); } diff --git a/src/lib/player.cc b/src/lib/player.cc index 6fcf57949..c7d7b2f44 100644 --- a/src/lib/player.cc +++ b/src/lib/player.cc @@ -206,14 +206,15 @@ Player::playlist_content_changed (weak_ptr w, int property, bool freque property == ContentProperty::TRIM_END || property == ContentProperty::PATH || property == VideoContentProperty::FRAME_TYPE || + property == VideoContentProperty::COLOUR_CONVERSION || + property == AudioContentProperty::STREAMS || property == DCPContentProperty::NEEDS_ASSETS || property == DCPContentProperty::NEEDS_KDM || property == SubtitleContentProperty::COLOUR || property == SubtitleContentProperty::EFFECT || property == SubtitleContentProperty::EFFECT_COLOUR || property == FFmpegContentProperty::SUBTITLE_STREAM || - property == FFmpegContentProperty::FILTERS || - property == VideoContentProperty::COLOUR_CONVERSION + property == FFmpegContentProperty::FILTERS ) { _have_valid_pieces = false;