1/*
2Copyright 2018 Google Inc. All Rights Reserved.
3
4Licensed under the Apache License, Version 2.0 (the "License");
5you may not use this file except in compliance with the License.
6You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10Unless required by applicable law or agreed to in writing, software
11distributed under the License is distributed on an "AS-IS" BASIS,
12WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13See the License for the specific language governing permissions and
14limitations under the License.
15*/
16
17#ifndef RESONANCE_AUDIO_UTILS_SUM_AND_DIFFERENCE_PROCESSOR_H_
18#define RESONANCE_AUDIO_UTILS_SUM_AND_DIFFERENCE_PROCESSOR_H_
19
20#include "base/audio_buffer.h"
21
22namespace vraudio {
23
24// Class which converts a 2-channel input audio buffer into its sum and
25// difference signals and stores them in the left and right channel
26// respectively.
27class SumAndDifferenceProcessor {
28 public:
29 // Constructs a stereo sum and difference processor.
30 //
31 // @param num_frames Number of frames in the stereo input audio buffer.
32 explicit SumAndDifferenceProcessor(size_t num_frames);
33
34 // Converts a 2-channel buffer signals into their sum and difference.
35 void Process(AudioBuffer* stereo_buffer);
36
37 private:
38 // Temporary audio buffer to store left channel input data during conversion.
39 AudioBuffer temp_buffer_;
40};
41
42} // namespace vraudio
43
44#endif // RESONANCE_AUDIO_UTILS_SUM_AND_DIFFERENCE_PROCESSOR_H_
45

source code of qtmultimedia/src/3rdparty/resonance-audio/resonance_audio/utils/sum_and_difference_processor.h