diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-05-11 01:41:39 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-05-18 11:50:29 +0100 |
| commit | e39cf78842eb33fac1deaf095c549ce857743b74 (patch) | |
| tree | 3723c5c724a0f27f231a3d10affea4f1965ca14a | |
| parent | 49a1e2a600bd7b9d2d4a926256378e6134704a1a (diff) | |
Fix a few crashes.
| -rw-r--r-- | src/lib/ffmpeg_content.cc | 20 | ||||
| -rw-r--r-- | test/4k_test.cc | 3 |
2 files changed, 17 insertions, 6 deletions
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<shared_ptr<FFmpegAudioStream> > FFmpegContent::ffmpeg_audio_streams () const { vector<shared_ptr<FFmpegAudioStream> > fa; - BOOST_FOREACH (AudioStreamPtr i, audio->streams()) { - fa.push_back (dynamic_pointer_cast<FFmpegAudioStream> (i)); + + if (audio) { + BOOST_FOREACH (AudioStreamPtr i, audio->streams()) { + fa.push_back (dynamic_pointer_cast<FFmpegAudioStream> (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> film = new_test_film ("4k_test"); film->set_name ("4k_test"); shared_ptr<FFmpegContent> 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 (); |
