std::shared_ptr
[dcpomatic.git] / src / lib / analyse_audio_job.h
index 5d6c091bcfbf3b835c68bdd771f3247c2bca6140..81287d2d2fe3f41df890a8cd92c5faa73cbb9f96 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2018 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2020 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -26,6 +26,8 @@
 #include "audio_point.h"
 #include "types.h"
 #include "dcpomatic_time.h"
+#include <leqm_nrt.h>
+#include <boost/scoped_ptr.hpp>
 
 class AudioBuffers;
 class AudioAnalysis;
@@ -44,7 +46,7 @@ class Filter;
 class AnalyseAudioJob : public Job
 {
 public:
-       AnalyseAudioJob (boost::shared_ptr<const Film>, boost::shared_ptr<const Playlist>, bool from_zero);
+       AnalyseAudioJob (std::shared_ptr<const Film>, std::shared_ptr<const Playlist>, bool from_zero);
        ~AnalyseAudioJob ();
 
        std::string name () const;
@@ -56,25 +58,27 @@ public:
        }
 
 private:
-       void analyse (boost::shared_ptr<const AudioBuffers>, dcpomatic::DCPTime time);
+       void analyse (std::shared_ptr<const AudioBuffers>, dcpomatic::DCPTime time);
 
-       boost::shared_ptr<const Playlist> _playlist;
+       std::shared_ptr<const Playlist> _playlist;
        /** playlist's audio analysis path when the job was created */
        boost::filesystem::path _path;
        dcpomatic::DCPTime _start;
        bool _from_zero;
 
-       int64_t _done;
-       int64_t _samples_per_point;
+       Frame _done;
+       Frame _samples_per_point;
        AudioPoint* _current;
 
        float* _sample_peak;
        Frame* _sample_peak_frame;
 
-       boost::shared_ptr<AudioAnalysis> _analysis;
+       std::shared_ptr<AudioAnalysis> _analysis;
 
-       boost::shared_ptr<AudioFilterGraph> _ebur128;
+       std::shared_ptr<AudioFilterGraph> _ebur128;
        std::vector<Filter const *> _filters;
 
+       boost::scoped_ptr<leqm_nrt::Calculator> _leqm;
+
        static const int _num_points;
 };