diff options
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/external_audio_decoder.cc | 1 | ||||
| -rw-r--r-- | src/lib/ffmpeg_decoder.cc | 18 | ||||
| -rw-r--r-- | src/lib/job.cc | 6 | ||||
| -rw-r--r-- | src/lib/make_dcp_job.cc | 4 |
4 files changed, 20 insertions, 9 deletions
diff --git a/src/lib/external_audio_decoder.cc b/src/lib/external_audio_decoder.cc index 136e00fb2..9b121235a 100644 --- a/src/lib/external_audio_decoder.cc +++ b/src/lib/external_audio_decoder.cc @@ -17,6 +17,7 @@ */ +#include <iostream> #include <sndfile.h> #include "external_audio_decoder.h" #include "film.h" diff --git a/src/lib/ffmpeg_decoder.cc b/src/lib/ffmpeg_decoder.cc index fd522a5ac..acaf149f4 100644 --- a/src/lib/ffmpeg_decoder.cc +++ b/src/lib/ffmpeg_decoder.cc @@ -120,11 +120,21 @@ FFmpegDecoder::setup_general () if (s->codec->codec_type == AVMEDIA_TYPE_VIDEO) { _video_stream = i; } else if (s->codec->codec_type == AVMEDIA_TYPE_AUDIO) { + + /* This is a hack; sometimes it seems that _audio_codec_context->channel_layout isn't set up, + so bodge it here. No idea why we should have to do this. + */ + + if (s->codec->channel_layout == 0) { + s->codec->channel_layout = av_get_default_channel_layout (s->codec->channels); + } + _audio_streams.push_back ( shared_ptr<AudioStream> ( new FFmpegAudioStream (stream_name (s), i, s->codec->sample_rate, s->codec->channel_layout) ) ); + } else if (s->codec->codec_type == AVMEDIA_TYPE_SUBTITLE) { _subtitle_streams.push_back ( shared_ptr<SubtitleStream> ( @@ -179,14 +189,6 @@ FFmpegDecoder::setup_audio () if (avcodec_open2 (_audio_codec_context, _audio_codec, 0) < 0) { throw DecodeError ("could not open audio decoder"); } - - /* This is a hack; sometimes it seems that _audio_codec_context->channel_layout isn't set up, - so bodge it here. No idea why we should have to do this. - */ - - if (_audio_codec_context->channel_layout == 0) { - _audio_codec_context->channel_layout = av_get_default_channel_layout (ffa->channels()); - } } void diff --git a/src/lib/job.cc b/src/lib/job.cc index 201397f08..896862d14 100644 --- a/src/lib/job.cc +++ b/src/lib/job.cc @@ -75,6 +75,12 @@ Job::run_wrapper () set_state (FINISHED_ERROR); set_error (e.what ()); + } catch (...) { + + set_progress (1); + set_state (FINISHED_ERROR); + set_error ("unknown exception"); + } } diff --git a/src/lib/make_dcp_job.cc b/src/lib/make_dcp_job.cc index 026724806..65cd272e7 100644 --- a/src/lib/make_dcp_job.cc +++ b/src/lib/make_dcp_job.cc @@ -103,7 +103,7 @@ MakeDCPJob::run () dcp.add_cpl (cpl); - descend (0.9); + descend (0.8); shared_ptr<libdcp::MonoPictureAsset> pa ( new libdcp::MonoPictureAsset ( boost::bind (&MakeDCPJob::j2c_path, this, _1), @@ -137,8 +137,10 @@ MakeDCPJob::run () ascend (); } + descend (0.1); cpl->add_reel (shared_ptr<libdcp::Reel> (new libdcp::Reel (pa, sa, shared_ptr<libdcp::SubtitleAsset> ()))); dcp.write_xml (); + ascend (); set_progress (1); set_state (FINISHED_OK); |
