blob: fe87169676c796e171477d8908ee7497cd1a0d06 [file] [log] [blame]
aleloi5bcc00e2016-08-15 03:01:31 -07001/*
2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020011#ifndef MODULES_AUDIO_MIXER_AUDIO_FRAME_MANIPULATOR_H_
12#define MODULES_AUDIO_MIXER_AUDIO_FRAME_MANIPULATOR_H_
aleloi5bcc00e2016-08-15 03:01:31 -070013
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020014#include "modules/include/module_common_types.h"
aleloi5bcc00e2016-08-15 03:01:31 -070015
16namespace webrtc {
aleloi5bcc00e2016-08-15 03:01:31 -070017
18// Updates the audioFrame's energy (based on its samples).
aleloi36542512016-10-07 05:28:32 -070019uint32_t AudioMixerCalculateEnergy(const AudioFrame& audio_frame);
aleloi5bcc00e2016-08-15 03:01:31 -070020
aleloi4b8bfb82016-10-12 02:14:59 -070021// Ramps up or down the provided audio frame. Ramp(0, 1, frame) will
22// linearly increase the samples in the frame from 0 to full volume.
23void Ramp(float start_gain, float target_gain, AudioFrame* audio_frame);
aleloi5bcc00e2016-08-15 03:01:31 -070024
aleloie8914152016-10-11 06:18:31 -070025// Downmixes or upmixes a frame between stereo and mono.
26void RemixFrame(size_t target_number_of_channels, AudioFrame* frame);
27
aleloi5bcc00e2016-08-15 03:01:31 -070028} // namespace webrtc
29
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020030#endif // MODULES_AUDIO_MIXER_AUDIO_FRAME_MANIPULATOR_H_