Note that newer libsub version is required.
[dcpomatic.git] / src / lib / audio_analyser.h
index e47ab94b424d64c4ffda4eb629f56ae4ac46b73a..3d40f802604f07280dbcc46c120816e58f65d045 100644 (file)
@@ -20,6 +20,7 @@
 
 
 #include "audio_analysis.h"
+#include "audio_filter_graph.h"
 #include "dcpomatic_time.h"
 #include "types.h"
 #include <leqm_nrt.h>
@@ -29,7 +30,6 @@
 
 class AudioAnalysis;
 class AudioBuffers;
-class AudioFilterGraph;
 class AudioPoint;
 class Film;
 class Filter;
@@ -39,13 +39,12 @@ class Playlist;
 class AudioAnalyser
 {
 public:
-       AudioAnalyser (std::shared_ptr<const Film> film, std::shared_ptr<const Playlist> playlist, bool from_zero, std::function<void (float)> set_progress);
-       ~AudioAnalyser ();
+       AudioAnalyser(std::shared_ptr<const Film> film, std::shared_ptr<const Playlist> playlist, bool whole_film, std::function<void (float)> set_progress);
 
        AudioAnalyser (AudioAnalyser const&) = delete;
        AudioAnalyser& operator= (AudioAnalyser const&) = delete;
 
-       void analyse (std::shared_ptr<const AudioBuffers>, dcpomatic::DCPTime time);
+       void analyse (std::shared_ptr<AudioBuffers>, dcpomatic::DCPTime time);
 
        dcpomatic::DCPTime start () const {
                return _start;
@@ -65,16 +64,17 @@ private:
 
        dcpomatic::DCPTime _start;
 #ifdef DCPOMATIC_HAVE_EBUR128_PATCHED_FFMPEG
-       std::shared_ptr<AudioFilterGraph> _ebur128;
+       AudioFilterGraph _ebur128;
 #endif
-       std::vector<Filter const *> _filters;
+       std::vector<Filter> _filters;
        Frame _samples_per_point = 1;
 
        boost::scoped_ptr<leqm_nrt::Calculator> _leqm;
+       int _leqm_channels = 0;
        Frame _done = 0;
-       float* _sample_peak = nullptr;
-       Frame* _sample_peak_frame = nullptr;
-       AudioPoint* _current = nullptr;
+       std::vector<float> _sample_peak;
+       std::vector<Frame> _sample_peak_frame;
+       std::vector<AudioPoint> _current;
 
        AudioAnalysis _analysis;
 };