X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Faudio_buffers.cc;h=cfe762659ebdb6d91128557b35cccb3c08c56144;hb=0877bf6d06de8e6f768534ec40c26bf629618a20;hp=63204dd6a8684fd50897e68dff0b6b8d15ea30c5;hpb=d291ce8580aabc2e4340c9887ea1733325bb1b80;p=dcpomatic.git diff --git a/src/lib/audio_buffers.cc b/src/lib/audio_buffers.cc index 63204dd6a..cfe762659 100644 --- a/src/lib/audio_buffers.cc +++ b/src/lib/audio_buffers.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2017 Carl Hetherington + Copyright (C) 2012-2020 Carl Hetherington This file is part of DCP-o-matic. @@ -18,6 +18,7 @@ */ +#include "util.h" #include "audio_buffers.h" #include "dcpomatic_assert.h" #include @@ -52,6 +53,12 @@ AudioBuffers::AudioBuffers (boost::shared_ptr other) copy_from (other.get(), other->_frames, 0, 0); } +AudioBuffers::AudioBuffers (boost::shared_ptr other, int32_t frames_to_copy, int32_t read_offset) +{ + allocate (other->_channels, frames_to_copy); + copy_from (other.get(), frames_to_copy, read_offset, 0); +} + AudioBuffers & AudioBuffers::operator= (AudioBuffers const & other) { @@ -303,7 +310,7 @@ AudioBuffers::accumulate_frames (AudioBuffers const * from, int32_t frames, int3 void AudioBuffers::apply_gain (float dB) { - float const linear = pow (10, dB / 20); + float const linear = db_to_linear (dB); for (int i = 0; i < _channels; ++i) { for (int j = 0; j < _frames; ++j) {