summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-04-26 00:22:52 +0100
committerCarl Hetherington <cth@carlh.net>2018-04-26 00:22:52 +0100
commit131646786964241429888af6296e4ff089ce5900 (patch)
tree524a4c82b72af8b6f44eab24adc3e2c3ca5e3ab0
parent59bf0ffd44300161bcf82f547413f1a58a7345f7 (diff)
Signal when streams change and rebuild player pieces when it happens.
-rw-r--r--src/lib/dcp_content.cc17
-rw-r--r--src/lib/player.cc5
2 files changed, 10 insertions, 12 deletions
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> 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> 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<Content> 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;