Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(562)

Side by Side Diff: webrtc/modules/audio_coding/main/acm2/audio_coding_module.cc

Issue 1481493004: audio_coding: remove "main" directory (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebased Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright (c) 2012 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 #include "webrtc/modules/audio_coding/main/include/audio_coding_module.h"
12
13 #include "webrtc/base/checks.h"
14 #include "webrtc/common_types.h"
15 #include "webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.h"
16 #include "webrtc/modules/audio_coding/main/acm2/rent_a_codec.h"
17 #include "webrtc/system_wrappers/include/clock.h"
18 #include "webrtc/system_wrappers/include/trace.h"
19
20 namespace webrtc {
21
22 // Create module
23 AudioCodingModule* AudioCodingModule::Create(int id) {
24 Config config;
25 config.id = id;
26 config.clock = Clock::GetRealTimeClock();
27 return Create(config);
28 }
29
30 AudioCodingModule* AudioCodingModule::Create(int id, Clock* clock) {
31 Config config;
32 config.id = id;
33 config.clock = clock;
34 return Create(config);
35 }
36
37 AudioCodingModule* AudioCodingModule::Create(const Config& config) {
38 return new acm2::AudioCodingModuleImpl(config);
39 }
40
41 int AudioCodingModule::NumberOfCodecs() {
42 return static_cast<int>(acm2::RentACodec::NumberOfCodecs());
43 }
44
45 int AudioCodingModule::Codec(int list_id, CodecInst* codec) {
46 auto codec_id = acm2::RentACodec::CodecIdFromIndex(list_id);
47 if (!codec_id)
48 return -1;
49 auto ci = acm2::RentACodec::CodecInstById(*codec_id);
50 if (!ci)
51 return -1;
52 *codec = *ci;
53 return 0;
54 }
55
56 int AudioCodingModule::Codec(const char* payload_name,
57 CodecInst* codec,
58 int sampling_freq_hz,
59 int channels) {
60 rtc::Optional<CodecInst> ci = acm2::RentACodec::CodecInstByParams(
61 payload_name, sampling_freq_hz, channels);
62 if (ci) {
63 *codec = *ci;
64 return 0;
65 } else {
66 // We couldn't find a matching codec, so set the parameters to unacceptable
67 // values and return.
68 codec->plname[0] = '\0';
69 codec->pltype = -1;
70 codec->pacsize = 0;
71 codec->rate = 0;
72 codec->plfreq = 0;
73 return -1;
74 }
75 }
76
77 int AudioCodingModule::Codec(const char* payload_name,
78 int sampling_freq_hz,
79 int channels) {
80 rtc::Optional<acm2::RentACodec::CodecId> ci =
81 acm2::RentACodec::CodecIdByParams(payload_name, sampling_freq_hz,
82 channels);
83 if (!ci)
84 return -1;
85 rtc::Optional<int> i = acm2::RentACodec::CodecIndexFromId(*ci);
86 return i ? *i : -1;
87 }
88
89 // Checks the validity of the parameters of the given codec
90 bool AudioCodingModule::IsCodecValid(const CodecInst& codec) {
91 bool valid = acm2::RentACodec::IsCodecValid(codec);
92 if (!valid)
93 WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceAudioCoding, -1,
94 "Invalid codec setting");
95 return valid;
96 }
97
98 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698