#include "audio_analysis.h"
+#include "audio_filter_graph.h"
#include "dcpomatic_time.h"
#include "types.h"
#include <leqm_nrt.h>
class AudioAnalysis;
class AudioBuffers;
-class AudioFilterGraph;
class AudioPoint;
class Film;
class Filter;
{
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 (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;
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;
};