A couple of small optimisations.
authorCarl Hetherington <cth@carlh.net>
Wed, 22 Jun 2016 00:10:47 +0000 (01:10 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 22 Jun 2016 00:10:47 +0000 (01:10 +0100)
src/lib/audio_buffers.cc
src/lib/dcp_decoder.cc

index 2ab8e187e3a32f9c3566a669990899cb2caf5649..546abbb54a767a9a3a4b2d039ada7f0634792d35 100644 (file)
@@ -279,9 +279,10 @@ AudioBuffers::accumulate_frames (AudioBuffers const * from, int32_t read_offset,
        DCPOMATIC_ASSERT (read_offset >= 0);
        DCPOMATIC_ASSERT (write_offset >= 0);
 
+       float** from_data = from->data ();
        for (int i = 0; i < _channels; ++i) {
                for (int j = 0; j < frames; ++j) {
-                       _data[i][j + write_offset] += from->data()[i][j + read_offset];
+                       _data[i][j + write_offset] += from_data[i][j + read_offset];
                }
        }
 }
index e7e88d3191e9bf2a3ecfaa0f0f8108b1cf7e4613..c17b21a7fd9045dffe7af9157816a61a4b301ea5 100644 (file)
@@ -116,9 +116,10 @@ DCPDecoder::pass (PassReason reason, bool)
                int const channels = _dcp_content->audio->stream()->channels ();
                int const frames = sf->size() / (3 * channels);
                shared_ptr<AudioBuffers> data (new AudioBuffers (channels, frames));
+               float** data_data = data->data();
                for (int i = 0; i < frames; ++i) {
                        for (int j = 0; j < channels; ++j) {
-                               data->data()[j][i] = static_cast<int> ((from[0] << 8) | (from[1] << 16) | (from[2] << 24)) / static_cast<float> (INT_MAX - 256);
+                               data_data[j][i] = static_cast<int> ((from[0] << 8) | (from[1] << 16) | (from[2] << 24)) / static_cast<float> (INT_MAX - 256);
                                from += 3;
                        }
                }