summaryrefslogtreecommitdiff
path: root/src/lib/dcp_subtitle_content.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2016-06-04 01:48:10 +0100
committerCarl Hetherington <cth@carlh.net>2016-06-04 01:48:10 +0100
commitd1491df3b2b8849b644aceaaf64916c5e76757c2 (patch)
treee7aab467d3599b32180c3a190bb1f4658f97930d /src/lib/dcp_subtitle_content.cc
parent9d6e500d83c0afe41042c48be2dfc4d3aa40cea9 (diff)
Fix deadlock on examining DCP subtitle content.
Diffstat (limited to 'src/lib/dcp_subtitle_content.cc')
-rw-r--r--src/lib/dcp_subtitle_content.cc16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/lib/dcp_subtitle_content.cc b/src/lib/dcp_subtitle_content.cc
index e8ac75e36..e7057efc4 100644
--- a/src/lib/dcp_subtitle_content.cc
+++ b/src/lib/dcp_subtitle_content.cc
@@ -56,19 +56,21 @@ DCPSubtitleContent::examine (shared_ptr<Job> job)
shared_ptr<dcp::SubtitleAsset> sc = load (path (0));
- /* Default to turning these subtitles on */
- subtitle->set_use (true);
+ shared_ptr<dcp::InteropSubtitleAsset> iop = dynamic_pointer_cast<dcp::InteropSubtitleAsset> (sc);
+ shared_ptr<dcp::SMPTESubtitleAsset> smpte = dynamic_pointer_cast<dcp::SMPTESubtitleAsset> (sc);
+ if (smpte) {
+ set_video_frame_rate (smpte->edit_rate().numerator);
+ }
boost::mutex::scoped_lock lm (_mutex);
- shared_ptr<dcp::InteropSubtitleAsset> iop = dynamic_pointer_cast<dcp::InteropSubtitleAsset> (sc);
+ /* Default to turning these subtitles on */
+ subtitle->set_use (true);
+
if (iop) {
subtitle->set_language (iop->language ());
- }
- shared_ptr<dcp::SMPTESubtitleAsset> smpte = dynamic_pointer_cast<dcp::SMPTESubtitleAsset> (sc);
- if (smpte) {
+ } else if (smpte) {
subtitle->set_language (smpte->language().get_value_or (""));
- set_video_frame_rate (smpte->edit_rate().numerator);
}
_length = ContentTime::from_seconds (sc->latest_subtitle_out().as_seconds ());