+ Frame frames (dcpomatic::DCPTime t) const;
+
+ class Buffer
+ {
+ public:
+ /** @param c Channels
+ * @param f Frames
+ * @param t Time
+ * @param r Frame rate.
+ */
+ Buffer (int c, int32_t f, dcpomatic::DCPTime t, int r)
+ : audio (new AudioBuffers (c, f))
+ , time (t)
+ , frame_rate (r)
+ {}
+
+ Buffer (boost::shared_ptr<AudioBuffers> a, dcpomatic::DCPTime t, int r)
+ : audio (a)
+ , time (t)
+ , frame_rate (r)
+ {}
+
+ boost::shared_ptr<AudioBuffers> audio;
+ dcpomatic::DCPTime time;
+ int frame_rate;
+
+ dcpomatic::DCPTimePeriod period () const {
+ return dcpomatic::DCPTimePeriod (time, time + dcpomatic::DCPTime::from_frames (audio->frames(), frame_rate));
+ }
+ };
+
+ class BufferComparator
+ {
+ public:
+ bool operator() (AudioMerger::Buffer const & a, AudioMerger::Buffer const & b)
+ {
+ return a.time < b.time;
+ }
+ };
+
+ std::list<Buffer> _buffers;