Forward-port 99% crash fix from 1.x.
authorCarl Hetherington <cth@carlh.net>
Fri, 9 Jan 2015 15:45:13 +0000 (15:45 +0000)
committerCarl Hetherington <cth@carlh.net>
Fri, 9 Jan 2015 15:45:13 +0000 (15:45 +0000)
src/lib/ffmpeg_decoder.cc

index 2d12ef0a007673d612babd8919f0cedb48d5ba0c..ec4e33a6ec56599c3fa5bcd4836e597e5c47bee7 100644 (file)
@@ -177,8 +177,9 @@ FFmpegDecoder::deinterleave_audio (uint8_t** data, int size)
 
        /* Deinterleave and convert to float */
 
-       DCPOMATIC_ASSERT ((size % (bytes_per_audio_sample() * _ffmpeg_content->audio_channels())) == 0);
-
+       /* total_samples and frames will be rounded down here, so if there are stray samples at the end
+          of the block that do not form a complete sample or frame they will be dropped.
+       */
        int const total_samples = size / bytes_per_audio_sample();
        int const frames = total_samples / _ffmpeg_content->audio_channels();
        shared_ptr<AudioBuffers> audio (new AudioBuffers (_ffmpeg_content->audio_channels(), frames));