Fix error when padding is needed in 3D encodes (#2476).
[dcpomatic.git] / src / lib / audio_analyser.cc
index c9fc2118c13276c0f78e810c6bb52bf53b20dd3f..687da9cef1741d8b26648264d067a5362cae5d60 100644 (file)
@@ -30,7 +30,6 @@
 #include "film.h"
 #include "filter.h"
 #include "playlist.h"
-#include "types.h"
 #include <dcp/warnings.h>
 extern "C" {
 #include <leqm_nrt.h>
@@ -136,8 +135,13 @@ AudioAnalyser::~AudioAnalyser ()
 void
 AudioAnalyser::analyse (shared_ptr<AudioBuffers> b, DCPTime time)
 {
-       LOG_DEBUG_AUDIO_ANALYSIS("Received %1 frames at %2", b->frames(), to_string(time));
+       LOG_DEBUG_AUDIO_ANALYSIS("AudioAnalyser received %1 frames at %2", b->frames(), to_string(time));
        DCPOMATIC_ASSERT (time >= _start);
+       /* In bug #2364 we had a lot of frames arriving here (~47s worth) which
+        * caused an OOM error on Windows.  Check for the number of frames being
+        * reasonable here to make sure we catch this if it happens again.
+        */
+       DCPOMATIC_ASSERT(b->frames() < 480000);
 
 #ifdef DCPOMATIC_HAVE_EBUR128_PATCHED_FFMPEG
        if (Config::instance()->analyse_ebur128 ()) {