From: Carl Hetherington Date: Wed, 11 May 2016 00:41:39 +0000 (+0100) Subject: Fix a few crashes. X-Git-Tag: v2.8.4~17 X-Git-Url: https://main.carlh.net/gitweb/?p=dcpomatic.git;a=commitdiff_plain;h=e39cf78842eb33fac1deaf095c549ce857743b74 Fix a few crashes. --- diff --git a/src/lib/ffmpeg_content.cc b/src/lib/ffmpeg_content.cc index 564200c87..8bcc0986d 100644 --- a/src/lib/ffmpeg_content.cc +++ b/src/lib/ffmpeg_content.cc @@ -349,9 +349,15 @@ FFmpegContent::identifier () const { SafeStringStream s; - s << Content::identifier() << "_" - << video->identifier() << "_" - << subtitle->identifier(); + s << Content::identifier(); + + if (video) { + s << "_" << video->identifier(); + } + + if (subtitle) { + s << "_" << subtitle->identifier(); + } boost::mutex::scoped_lock lm (_mutex); @@ -536,8 +542,12 @@ vector > FFmpegContent::ffmpeg_audio_streams () const { vector > fa; - BOOST_FOREACH (AudioStreamPtr i, audio->streams()) { - fa.push_back (dynamic_pointer_cast (i)); + + if (audio) { + BOOST_FOREACH (AudioStreamPtr i, audio->streams()) { + fa.push_back (dynamic_pointer_cast (i)); + } } + return fa; } diff --git a/test/4k_test.cc b/test/4k_test.cc index 9ad2dfb58..db6e4f62f 100644 --- a/test/4k_test.cc +++ b/test/4k_test.cc @@ -38,13 +38,14 @@ BOOST_AUTO_TEST_CASE (fourk_test) shared_ptr film = new_test_film ("4k_test"); film->set_name ("4k_test"); shared_ptr c (new FFmpegContent (film, "test/data/test.mp4")); - c->video->set_scale (VideoContentScale (Ratio::from_id ("185"))); film->set_resolution (RESOLUTION_4K); film->set_dcp_content_type (DCPContentType::from_isdcf_name ("FTR")); film->set_container (Ratio::from_id ("185")); film->examine_and_add_content (c); wait_for_jobs (); + c->video->set_scale (VideoContentScale (Ratio::from_id ("185"))); + film->make_dcp (); wait_for_jobs ();