using boost::shared_ptr;
using boost::optional;
+// #define INSTRUMENT 1
+
AudioMerger::AudioMerger (int frame_rate)
: _frame_rate (frame_rate)
{
-
+#ifdef INSTRUMENT
+ cout << "I/AM frame_rate " << frame_rate << "\n";
+#endif
}
Frame
list<pair<shared_ptr<AudioBuffers>, DCPTime> >
AudioMerger::pull (DCPTime time)
{
+#ifdef INSTRUMENT
+ std::cout << "I/AM pull " << time.get() << "\n";
+#endif
list<pair<shared_ptr<AudioBuffers>, DCPTime> > out;
list<Buffer> new_buffers;
void
AudioMerger::push (boost::shared_ptr<const AudioBuffers> audio, DCPTime time)
{
+#ifdef INSTRUMENT
+ std::cout << "I/AM push " << time.get() << " " << audio->frames() << "\n";
+#endif
DCPOMATIC_ASSERT (audio->frames() > 0);
DCPTimePeriod period (time, time + DCPTime::from_frames (audio->frames(), _frame_rate));
part->copy_from (audio.get(), part->frames(), frames(DCPTime(i.from - time)), 0);
if (before == _buffers.end() && after == _buffers.end()) {
- /* New buffer */
- DCPOMATIC_ASSERT (part->frames() > 0);
- _buffers.push_back (Buffer (part, time, _frame_rate));
+ if (part->frames() > 0) {
+ /* New buffer */
+ _buffers.push_back (Buffer (part, time, _frame_rate));
+ }
} else if (before != _buffers.end() && after == _buffers.end()) {
/* We have an existing buffer before this one; append new data to it */
before->audio->append (part);
void
AudioMerger::clear ()
{
+#ifdef INSTRUMENT
+ cout << "I/AM clear\n";
+#endif
_buffers.clear ();
}