blob: a506ead30e17903a0a3e3ab8ce73820155b795b3 [file] [log] [blame]
wu@webrtc.org24301a62013-12-13 19:17:43 +00001/*
2 * Copyright (c) 2013 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#include "modules/audio_coding/acm2/call_statistics.h"
wu@webrtc.org24301a62013-12-13 19:17:43 +000012
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020013#include "rtc_base/checks.h"
wu@webrtc.org24301a62013-12-13 19:17:43 +000014
15namespace webrtc {
16
17namespace acm2 {
18
henrik.lundin63489782016-09-20 01:47:12 -070019void CallStatistics::DecodedByNetEq(AudioFrame::SpeechType speech_type,
20 bool muted) {
wu@webrtc.org24301a62013-12-13 19:17:43 +000021 ++decoding_stat_.calls_to_neteq;
henrik.lundin63489782016-09-20 01:47:12 -070022 if (muted) {
23 ++decoding_stat_.decoded_muted_output;
24 }
wu@webrtc.org24301a62013-12-13 19:17:43 +000025 switch (speech_type) {
26 case AudioFrame::kNormalSpeech: {
27 ++decoding_stat_.decoded_normal;
28 break;
29 }
30 case AudioFrame::kPLC: {
31 ++decoding_stat_.decoded_plc;
32 break;
33 }
34 case AudioFrame::kCNG: {
35 ++decoding_stat_.decoded_cng;
36 break;
37 }
38 case AudioFrame::kPLCCNG: {
39 ++decoding_stat_.decoded_plc_cng;
40 break;
41 }
42 case AudioFrame::kUndefined: {
43 // If the audio is decoded by NetEq, |kUndefined| is not an option.
henrik.lundin63489782016-09-20 01:47:12 -070044 RTC_NOTREACHED();
wu@webrtc.org24301a62013-12-13 19:17:43 +000045 }
46 }
47}
48
49void CallStatistics::DecodedBySilenceGenerator() {
50 ++decoding_stat_.calls_to_silence_generator;
51}
52
53const AudioDecodingCallStats& CallStatistics::GetDecodingStatistics() const {
54 return decoding_stat_;
55}
56
57} // namespace acm2
58
59} // namespace webrtc