diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-06-04 01:48:10 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-06-04 01:48:10 +0100 |
| commit | d1491df3b2b8849b644aceaaf64916c5e76757c2 (patch) | |
| tree | e7aab467d3599b32180c3a190bb1f4658f97930d /src/lib/dcp_subtitle_content.cc | |
| parent | 9d6e500d83c0afe41042c48be2dfc4d3aa40cea9 (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.cc | 16 |
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 ()); |
