Note: We no longer publish the latest version of our code here. We primarily use a kumc-bmi github organization. The heron ETL repository, in particular, is not public. Peers in the informatics community should see MultiSiteDev for details on requesting access.

source: webrtc/webrtc/modules/audio_coding/main/interface/audio_coding_module_typedefs.h @ 0:4bda6873e34c

pub_scrub_3792 tip
Last change on this file since 0:4bda6873e34c was 0:4bda6873e34c, checked in by Michael Prittie <mprittie@…>, 6 years ago

Scrubbed password for publication.

File size: 7.0 KB
Line 
1/*
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
11#ifndef WEBRTC_MODULES_AUDIO_CODING_MAIN_INTERFACE_AUDIO_CODING_MODULE_TYPEDEFS_H_
12#define WEBRTC_MODULES_AUDIO_CODING_MAIN_INTERFACE_AUDIO_CODING_MODULE_TYPEDEFS_H_
13
14#include <map>
15
16#include "webrtc/modules/interface/module_common_types.h"
17#include "webrtc/typedefs.h"
18
19namespace webrtc {
20
21///////////////////////////////////////////////////////////////////////////
22// enum AudioPlayoutMode
23// An enumerator for different playout modes.
24//
25// -voice       : This is the standard mode for VoIP calls. The trade-off
26//                between low delay and jitter robustness is optimized
27//                for high-quality two-way communication.
28//                NetEQs packet loss concealment and signal processing
29//                capabilities are fully employed.
30// -fax         : The fax mode is optimized for decodability of fax signals
31//                rather than for perceived audio quality. When this mode
32//                is selected, NetEQ will do as few delay changes as possible,
33//                trying to maintain a high and constant delay. Meanwhile,
34//                the packet loss concealment efforts are reduced.
35//
36// -streaming   : In the case of one-way communication such as passive
37//                conference participant, a webinar, or a streaming application,
38//                this mode can be used to improve the jitter robustness at
39//                the cost of increased delay.
40// -off         : Turns off most of NetEQ's features. Stuffs zeros for lost
41//                packets and during buffer increases.
42//
43enum AudioPlayoutMode {
44  voice = 0,
45  fax = 1,
46  streaming = 2,
47  off = 3,
48};
49
50///////////////////////////////////////////////////////////////////////////
51// enum ACMSpeechType
52// An enumerator for possible labels of a decoded frame.
53//
54// -normal      : a normal speech frame. If VAD is enabled on the
55//                incoming stream this label indicate that the
56//                frame is active.
57// -PLC         : a PLC frame. The corresponding packet was lost
58//                and this frame generated by PLC techniques.
59// -CNG         : the frame is comfort noise. This happens if VAD
60//                is enabled at the sender and we have received
61//                SID.
62// -PLCCNG      : PLC will fade to comfort noise if the duration
63//                of PLC is long. This labels such a case.
64// -VADPassive  : the VAD at the receiver recognizes this frame as
65//                passive.
66//
67enum ACMSpeechType {
68  normal = 0,
69  PLC = 1,
70  CNG = 2,
71  PLCCNG = 3,
72  VADPassive = 4
73};
74
75///////////////////////////////////////////////////////////////////////////
76// enum ACMVADMode
77// An enumerator for aggressiveness of VAD
78// -VADNormal                : least aggressive mode.
79// -VADLowBitrate            : more aggressive than "VADNormal" to save on
80//                             bit-rate.
81// -VADAggr                  : an aggressive mode.
82// -VADVeryAggr              : the most agressive mode.
83//
84enum ACMVADMode {
85  VADNormal = 0,
86  VADLowBitrate = 1,
87  VADAggr = 2,
88  VADVeryAggr = 3
89};
90
91///////////////////////////////////////////////////////////////////////////
92// enum ACMCountries
93// An enumerator for countries, used when enabling CPT for a specific country.
94//
95enum ACMCountries {
96  ACMDisableCountryDetection = -1, // disable CPT detection
97  ACMUSA = 0,
98  ACMJapan,
99  ACMCanada,
100  ACMFrance,
101  ACMGermany,
102  ACMAustria,
103  ACMBelgium,
104  ACMUK,
105  ACMCzech,
106  ACMDenmark,
107  ACMFinland,
108  ACMGreece,
109  ACMHungary,
110  ACMIceland,
111  ACMIreland,
112  ACMItaly,
113  ACMLuxembourg,
114  ACMMexico,
115  ACMNorway,
116  ACMPoland,
117  ACMPortugal,
118  ACMSpain,
119  ACMSweden,
120  ACMTurkey,
121  ACMChina,
122  ACMHongkong,
123  ACMTaiwan,
124  ACMKorea,
125  ACMSingapore,
126  ACMNonStandard1
127// non-standard countries
128};
129
130///////////////////////////////////////////////////////////////////////////
131// enum ACMAMRPackingFormat
132// An enumerator for different bit-packing format of AMR codec according to
133// RFC 3267.
134//
135// -AMRUndefined           : undefined.
136// -AMRBandwidthEfficient  : bandwidth-efficient mode.
137// -AMROctetAlligned       : Octet-alligned mode.
138// -AMRFileStorage         : file-storage mode.
139//
140enum ACMAMRPackingFormat {
141  AMRUndefined = -1,
142  AMRBandwidthEfficient = 0,
143  AMROctetAlligned = 1,
144  AMRFileStorage = 2
145};
146
147
148///////////////////////////////////////////////////////////////////////////
149//
150//   Struct containing network statistics
151//
152// -currentBufferSize      : current jitter buffer size in ms
153// -preferredBufferSize    : preferred (optimal) buffer size in ms
154// -jitterPeaksFound       : indicate if peaky-jitter mode is engaged, that is,
155//                           if severe but sparse network delays have occurred.
156// -currentPacketLossRate  : loss rate (network + late) (in Q14)
157// -currentDiscardRate     : late loss rate (in Q14)
158// -currentExpandRate      : fraction (of original stream) of synthesized
159//                           speech inserted through expansion (in Q14)
160// -currentPreemptiveRate  : fraction of synthesized speech inserted through
161//                           pre-emptive expansion (in Q14)
162// -currentAccelerateRate  : fraction of data removed through acceleration
163//                           (in Q14)
164// -clockDriftPPM          : clock-drift between sender and receiver in parts-
165//                           per-million. Positive means that receiver sample
166//                           rate is higher than sender sample rate.
167// -meanWaitingTimeMs      : average packet waiting time in the buffer
168// -medianWaitingTimeMs    : median packet waiting time in the buffer
169// -minWaitingTimeMs       : min packet waiting time in the buffer
170// -maxWaitingTimeMs       : max packet waiting time in the buffer
171// -addedSamples           : samples inserted because of packet loss in off mode
172typedef struct {
173  uint16_t currentBufferSize;
174  uint16_t preferredBufferSize;
175  bool jitterPeaksFound;
176  uint16_t currentPacketLossRate;
177  uint16_t currentDiscardRate;
178  uint16_t currentExpandRate;
179  uint16_t currentPreemptiveRate;
180  uint16_t currentAccelerateRate;
181  int32_t clockDriftPPM;
182  int meanWaitingTimeMs;
183  int medianWaitingTimeMs;
184  int minWaitingTimeMs;
185  int maxWaitingTimeMs;
186  int addedSamples;
187} ACMNetworkStatistics;
188
189///////////////////////////////////////////////////////////////////////////
190//
191// Enumeration of background noise mode a mapping from NetEQ interface.
192//
193// -On                  : default "normal" behavior with eternal noise
194// -Fade                : noise fades to zero after some time
195// -Off                 : background noise is always zero
196//
197enum ACMBackgroundNoiseMode {
198  On,
199  Fade,
200  Off
201};
202
203}  // namespace webrtc
204
205#endif  // WEBRTC_MODULES_AUDIO_CODING_MAIN_INTERFACE_AUDIO_CODING_MODULE_TYPEDEFS_H_
Note: See TracBrowser for help on using the repository browser.