/*
- Copyright (C) 2013-2017 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2013-2021 Carl Hetherington <cth@carlh.net>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
*/
+
/** @file src/audio_merger.h
* @brief AudioMerger class.
*/
+
#include "audio_buffers.h"
#include "dcpomatic_time.h"
#include "util.h"
+
/** @class AudioMerger.
* @brief A class that can merge audio data from many sources.
*/
public:
explicit AudioMerger (int frame_rate);
- std::list<std::pair<boost::shared_ptr<AudioBuffers>, DCPTime> > pull (DCPTime time);
- void push (boost::shared_ptr<const AudioBuffers> audio, DCPTime time);
+ std::list<std::pair<std::shared_ptr<AudioBuffers>, dcpomatic::DCPTime>> pull (dcpomatic::DCPTime time);
+ void push (std::shared_ptr<const AudioBuffers> audio, dcpomatic::DCPTime time);
void clear ();
private:
- Frame frames (DCPTime t) const;
+ Frame frames (dcpomatic::DCPTime t) const;
class Buffer
{
* @param t Time
* @param r Frame rate.
*/
- Buffer (int c, int32_t f, DCPTime t, int r)
+ 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, DCPTime t, int r)
+ Buffer (std::shared_ptr<AudioBuffers> a, dcpomatic::DCPTime t, int r)
: audio (a)
, time (t)
, frame_rate (r)
{}
- boost::shared_ptr<AudioBuffers> audio;
- DCPTime time;
+ std::shared_ptr<AudioBuffers> audio;
+ dcpomatic::DCPTime time;
int frame_rate;
- DCPTimePeriod period () const {
- return DCPTimePeriod (time, time + 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;
+ dcpomatic::DCPTimePeriod period () const {
+ return dcpomatic::DCPTimePeriod (time, time + dcpomatic::DCPTime::from_frames (audio->frames(), frame_rate));
}
};