X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Flib%2Faudio_buffers.cc;h=a1c9b81ac099259bbe86e2f9f8dcea1340bbb9ae;hb=4265db19ba68a995fca42bdd5fa815aead9c5c50;hp=e80142b8e518ad2efe66f5f1c1ee4b90f6dcafa6;hpb=75518e16a2c35400ac641975c74ff72b404cef69;p=dcpomatic.git diff --git a/src/lib/audio_buffers.cc b/src/lib/audio_buffers.cc index e80142b8e..a1c9b81ac 100644 --- a/src/lib/audio_buffers.cc +++ b/src/lib/audio_buffers.cc @@ -210,9 +210,11 @@ AudioBuffers::move (int from, int to, int frames) } } -/** Add data from from `from', `from_channel' to our channel `to_channel' */ +/** Add data from from `from', `from_channel' to our channel `to_channel'. + * @param gain Linear gain to apply to the data before it is added. + */ void -AudioBuffers::accumulate_channel (AudioBuffers const * from, int from_channel, int to_channel) +AudioBuffers::accumulate_channel (AudioBuffers const * from, int from_channel, int to_channel, float gain) { int const N = frames (); assert (from->frames() == N); @@ -222,7 +224,7 @@ AudioBuffers::accumulate_channel (AudioBuffers const * from, int from_channel, i float* d = _data[to_channel]; for (int i = 0; i < N; ++i) { - *d++ += *s++; + *d++ += (*s++) * gain; } }