Chromium Code Reviews| Index: webrtc/modules/audio_coding/main/acm2/audio_coding_module.cc |
| diff --git a/webrtc/modules/audio_coding/main/acm2/audio_coding_module.cc b/webrtc/modules/audio_coding/main/acm2/audio_coding_module.cc |
| index 8a0980e6190f3d6526a594a83c6d465937ee14a3..7754a9c375b772b0513ef537994d72a448e3e533 100644 |
| --- a/webrtc/modules/audio_coding/main/acm2/audio_coding_module.cc |
| +++ b/webrtc/modules/audio_coding/main/acm2/audio_coding_module.cc |
| @@ -12,8 +12,8 @@ |
| #include "webrtc/base/checks.h" |
| #include "webrtc/common_types.h" |
| -#include "webrtc/modules/audio_coding/main/acm2/acm_codec_database.h" |
| #include "webrtc/modules/audio_coding/main/acm2/audio_coding_module_impl.h" |
| +#include "webrtc/modules/audio_coding/main/acm2/rent_a_codec.h" |
| #include "webrtc/system_wrappers/interface/clock.h" |
| #include "webrtc/system_wrappers/interface/trace.h" |
| @@ -38,29 +38,32 @@ AudioCodingModule* AudioCodingModule::Create(const Config& config) { |
| return new acm2::AudioCodingModuleImpl(config); |
| } |
| -// Get number of supported codecs |
| int AudioCodingModule::NumberOfCodecs() { |
| - return acm2::ACMCodecDB::kNumCodecs; |
| + return static_cast<int>(acm2::RentACodec::NumberOfCodecs()); |
| } |
| -// Get supported codec parameters with id |
| int AudioCodingModule::Codec(int list_id, CodecInst* codec) { |
| - // Get the codec settings for the codec with the given list ID |
| - return acm2::ACMCodecDB::Codec(list_id, codec); |
| + auto codec_id = acm2::RentACodec::CodecIdFromIndex(list_id); |
| + if (!codec_id) |
| + return -1; |
| + auto ci = acm2::RentACodec::CodecInstById(*codec_id); |
| + if (!ci) |
| + return -1; |
| + *codec = *ci; |
| + return 0; |
| } |
| -// Get supported codec parameters with name, frequency and number of channels. |
| int AudioCodingModule::Codec(const char* payload_name, |
| CodecInst* codec, |
|
hlundin-webrtc
2015/10/27 13:52:02
Order of parameters is wrong for this method. |cod
kwiberg-webrtc
2015/10/27 14:43:23
This method is going away, so I decided to not cha
hlundin-webrtc
2015/10/27 15:31:27
Acknowledged.
|
| int sampling_freq_hz, |
| int channels) { |
| - int codec_id; |
| - |
| - // Get the id of the codec from the database. |
| - codec_id = acm2::ACMCodecDB::CodecId( |
| + rtc::Maybe<CodecInst> ci = acm2::RentACodec::CodecInstByParams( |
| payload_name, sampling_freq_hz, channels); |
| - if (codec_id < 0) { |
| - // We couldn't find a matching codec, set the parameters to unacceptable |
| + if (ci) { |
| + *codec = *ci; |
| + return 0; |
| + } else { |
| + // We couldn't find a matching codec, so set the parameters to unacceptable |
| // values and return. |
| codec->plname[0] = '\0'; |
| codec->pltype = -1; |
| @@ -69,35 +72,26 @@ int AudioCodingModule::Codec(const char* payload_name, |
| codec->plfreq = 0; |
| return -1; |
| } |
| - |
| - // Get default codec settings. |
| - acm2::ACMCodecDB::Codec(codec_id, codec); |
| - |
| - // Keep the number of channels from the function call. For most codecs it |
| - // will be the same value as in default codec settings, but not for all. |
| - codec->channels = channels; |
| - |
| - return 0; |
| } |
| -// Get supported codec Index with name, frequency and number of channels. |
| int AudioCodingModule::Codec(const char* payload_name, |
| int sampling_freq_hz, |
| int channels) { |
| - return acm2::ACMCodecDB::CodecId(payload_name, sampling_freq_hz, channels); |
| + rtc::Maybe<acm2::RentACodec::CodecId> ci = acm2::RentACodec::CodecIdByParams( |
| + payload_name, sampling_freq_hz, channels); |
| + if (!ci) |
| + return -1; |
| + rtc::Maybe<int> i = acm2::RentACodec::CodecIndexFromId(*ci); |
| + return i ? *i : -1; |
| } |
| // Checks the validity of the parameters of the given codec |
| bool AudioCodingModule::IsCodecValid(const CodecInst& codec) { |
| - int codec_number = acm2::ACMCodecDB::CodecNumber(codec); |
| - |
| - if (codec_number < 0) { |
| + bool valid = acm2::RentACodec::IsCodecValid(codec); |
| + if (!valid) |
| WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceAudioCoding, -1, |
| "Invalid codec setting"); |
| - return false; |
| - } else { |
| - return true; |
| - } |
| + return valid; |
| } |
| } // namespace webrtc |