blob: ab3633d2665a670b2916c424798edf0173ede49d [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
Yves Gerey3e707812018-11-28 16:47:49 +010014#include <stddef.h>
15#include <stdint.h>
16
Fredrik Solenbergbbf21a32018-04-12 22:44:09 +020017#include "api/audio/audio_frame.h"
aleloi5bcc00e2016-08-15 03:01:31 -070018
19namespace webrtc {
aleloi5bcc00e2016-08-15 03:01:31 -070020
21// Updates the audioFrame's energy (based on its samples).
aleloi36542512016-10-07 05:28:32 -070022uint32_t AudioMixerCalculateEnergy(const AudioFrame& audio_frame);
aleloi5bcc00e2016-08-15 03:01:31 -070023
aleloi4b8bfb82016-10-12 02:14:59 -070024// Ramps up or down the provided audio frame. Ramp(0, 1, frame) will
25// linearly increase the samples in the frame from 0 to full volume.
26void Ramp(float start_gain, float target_gain, AudioFrame* audio_frame);
aleloi5bcc00e2016-08-15 03:01:31 -070027
aleloie8914152016-10-11 06:18:31 -070028// Downmixes or upmixes a frame between stereo and mono.
29void RemixFrame(size_t target_number_of_channels, AudioFrame* frame);
30
aleloi5bcc00e2016-08-15 03:01:31 -070031} // namespace webrtc
32
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020033#endif // MODULES_AUDIO_MIXER_AUDIO_FRAME_MANIPULATOR_H_