summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2016-05-11 01:41:39 +0100
committerCarl Hetherington <cth@carlh.net>2016-05-18 11:50:29 +0100
commite39cf78842eb33fac1deaf095c549ce857743b74 (patch)
tree3723c5c724a0f27f231a3d10affea4f1965ca14a
parent49a1e2a600bd7b9d2d4a926256378e6134704a1a (diff)
Fix a few crashes.
-rw-r--r--src/lib/ffmpeg_content.cc20
-rw-r--r--test/4k_test.cc3
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 ();