From 3e3fa3f58b9ce62768ca8a977334ae1b5fe7da69 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 12 Sep 2012 10:54:39 +0100 Subject: Allow build using Ubuntu 12.04 repos. --- src/lib/decoder.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/lib/decoder.h') diff --git a/src/lib/decoder.h b/src/lib/decoder.h index 5c69e12d0..792f7dde2 100644 --- a/src/lib/decoder.h +++ b/src/lib/decoder.h @@ -29,9 +29,11 @@ #include #include #include +#ifdef HAVE_SWRESAMPLE extern "C" { #include -} +} +#endif #include "util.h" class Job; @@ -132,7 +134,9 @@ private: AVFilterContext* _buffer_src_context; AVFilterContext* _buffer_sink_context; +#if HAVE_SWRESAMPLE SwrContext* _swr_context; +#endif bool _have_setup_video_filters; DelayLine* _delay_line; -- cgit v1.2.3 From b8b9800d1022fe0912b180e8b3b41fd4b616478a Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 24 Sep 2012 13:12:34 +0100 Subject: Fix problems with overflow on long films. --- .../666e8ba3-f1a3-4245-9d00-9a3a5e048ed9/values | 17 ++++++++++++++ ChangeLog | 4 ++++ src/lib/decoder.cc | 26 ++++++++++++---------- src/lib/decoder.h | 2 +- 4 files changed, 36 insertions(+), 13 deletions(-) create mode 100644 .be/aff5ca2c-44ee-4ed6-800b-4abe9c3e794c/bugs/666e8ba3-f1a3-4245-9d00-9a3a5e048ed9/values (limited to 'src/lib/decoder.h') diff --git a/.be/aff5ca2c-44ee-4ed6-800b-4abe9c3e794c/bugs/666e8ba3-f1a3-4245-9d00-9a3a5e048ed9/values b/.be/aff5ca2c-44ee-4ed6-800b-4abe9c3e794c/bugs/666e8ba3-f1a3-4245-9d00-9a3a5e048ed9/values new file mode 100644 index 000000000..8861f1d19 --- /dev/null +++ b/.be/aff5ca2c-44ee-4ed6-800b-4abe9c3e794c/bugs/666e8ba3-f1a3-4245-9d00-9a3a5e048ed9/values @@ -0,0 +1,17 @@ +creator: Carl Hetherington + + +reporter: Carl Hetherington + + +severity: minor + + +status: open + + +summary: Re-setting content file runs thumb scan twice? + + +time: Mon, 24 Sep 2012 09:42:18 +0000 + diff --git a/ChangeLog b/ChangeLog index 70c097f16..1aaed3818 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2012-09-24 Carl Hetherington + + * Fix problems with overflow on long films. + 2012-09-24 Carl Hetherington * Version 0.52 released. diff --git a/src/lib/decoder.cc b/src/lib/decoder.cc index 9332511bc..2f02147e3 100644 --- a/src/lib/decoder.cc +++ b/src/lib/decoder.cc @@ -165,20 +165,22 @@ Decoder::process_end () in to get it to the right length. */ - int const audio_short_by_frames = - (decoding_frames() * dcp_audio_sample_rate (_fs->audio_sample_rate) / _fs->frames_per_second) + int64_t const audio_short_by_frames = + ((int64_t) decoding_frames() * dcp_audio_sample_rate (_fs->audio_sample_rate) / _fs->frames_per_second) - _audio_frames_processed; - int bytes = audio_short_by_frames * _fs->audio_channels * _fs->bytes_per_sample(); - - int const silence_size = 64 * 1024; - uint8_t silence[silence_size]; - memset (silence, 0, silence_size); - - while (bytes) { - int const t = min (bytes, silence_size); - Audio (silence, t); - bytes -= t; + if (audio_short_by_frames >= 0) { + int bytes = audio_short_by_frames * _fs->audio_channels * _fs->bytes_per_sample(); + + int const silence_size = 64 * 1024; + uint8_t silence[silence_size]; + memset (silence, 0, silence_size); + + while (bytes) { + int const t = min (bytes, silence_size); + Audio (silence, t); + bytes -= t; + } } } diff --git a/src/lib/decoder.h b/src/lib/decoder.h index 792f7dde2..14b25c7b0 100644 --- a/src/lib/decoder.h +++ b/src/lib/decoder.h @@ -145,7 +145,7 @@ private: /* Number of audio frames that we have pushed to the encoder (at the DCP sample rate). */ - int _audio_frames_processed; + int64_t _audio_frames_processed; }; #endif -- cgit v1.2.3