Index: webrtc/modules/audio_coding/neteq/decoder_database.cc |
diff --git a/webrtc/modules/audio_coding/neteq/decoder_database.cc b/webrtc/modules/audio_coding/neteq/decoder_database.cc |
index 41803f754ac116a2ecf0d3e4e4f3a6138fe7a9f5..50016ca806487059e5cb49b203474dd3cd987477 100644 |
--- a/webrtc/modules/audio_coding/neteq/decoder_database.cc |
+++ b/webrtc/modules/audio_coding/neteq/decoder_database.cc |
@@ -13,10 +13,69 @@ |
#include <assert.h> |
#include <utility> // pair |
+#include "webrtc/base/checks.h" |
#include "webrtc/base/logging.h" |
#include "webrtc/modules/audio_coding/codecs/audio_decoder.h" |
namespace webrtc { |
+namespace { |
+// The codec names are taken from ACMCodecDB::database_. |
+std::string CodecName(NetEqDecoder codec_type) { |
+ switch (codec_type) { |
+ case NetEqDecoder::kDecoderPCMu: |
+ case NetEqDecoder::kDecoderPCMu_2ch: |
+ return "PCMU"; |
+ case NetEqDecoder::kDecoderPCMa: |
+ case NetEqDecoder::kDecoderPCMa_2ch: |
+ return "PCMA"; |
+ case NetEqDecoder::kDecoderPCM16B: |
+ case NetEqDecoder::kDecoderPCM16B_2ch: |
+ case NetEqDecoder::kDecoderPCM16B_5ch: |
+ case NetEqDecoder::kDecoderPCM16Bwb: |
+ case NetEqDecoder::kDecoderPCM16Bwb_2ch: |
+ case NetEqDecoder::kDecoderPCM16Bswb32kHz: |
+ case NetEqDecoder::kDecoderPCM16Bswb32kHz_2ch: |
+ case NetEqDecoder::kDecoderPCM16Bswb48kHz: |
+ case NetEqDecoder::kDecoderPCM16Bswb48kHz_2ch: |
+ return "L16"; |
+#ifdef WEBRTC_CODEC_G722 |
+ case NetEqDecoder::kDecoderG722: |
+ case NetEqDecoder::kDecoderG722_2ch: |
+ return "G722"; |
+#endif |
+#ifdef WEBRTC_CODEC_ILBC |
+ case NetEqDecoder::kDecoderILBC: |
+ return "ILBC"; |
+#endif |
+#if defined(WEBRTC_CODEC_ISACFX) || defined(WEBRTC_CODEC_ISAC) |
+ case NetEqDecoder::kDecoderISAC: |
+#ifdef WEBRTC_CODEC_ISAC |
+ case NetEqDecoder::kDecoderISACswb: |
+#endif |
+ return "ISAC"; |
+#endif |
+#ifdef WEBRTC_CODEC_OPUS |
+ case NetEqDecoder::kDecoderOpus: |
+ case NetEqDecoder::kDecoderOpus_2ch: |
+ return "opus"; |
+#endif |
+ case NetEqDecoder::kDecoderCNGnb: |
+ case NetEqDecoder::kDecoderCNGwb: |
+ case NetEqDecoder::kDecoderCNGswb32kHz: |
+ case NetEqDecoder::kDecoderCNGswb48kHz: |
+ return "CN"; |
+ case NetEqDecoder::kDecoderRED: |
+ return "red"; |
+ case NetEqDecoder::kDecoderAVT: |
+ return "telephone-event"; |
+ case NetEqDecoder::kDecoderArbitrary: |
+ return "arbitrary"; |
+ default: |
+ RTC_NOTREACHED(); |
+ return "unknown"; |
+ } |
+} |
+} // namespace |
kwiberg-webrtc
2015/12/02 09:50:42
Should we standardize on either lower- or uppercas
hlundin-webrtc
2015/12/02 16:19:24
Yes, we should. But no longer relevant for this CL
|
DecoderDatabase::DecoderDatabase() |
: active_decoder_(-1), active_cng_decoder_(-1) {} |
@@ -45,10 +104,10 @@ int DecoderDatabase::RegisterPayload(uint8_t rtp_payload_type, |
if (!CodecSupported(codec_type)) { |
return kCodecNotSupported; |
} |
- int fs_hz = CodecSampleRateHz(codec_type); |
- std::pair<DecoderMap::iterator, bool> ret; |
- DecoderInfo info(codec_type, fs_hz, NULL, false); |
- ret = decoders_.insert(std::make_pair(rtp_payload_type, info)); |
+ const int fs_hz = CodecSampleRateHz(codec_type); |
+ const std::string name = CodecName(codec_type); |
+ DecoderInfo info(codec_type, name, fs_hz, NULL, false); |
+ auto ret = decoders_.insert(std::make_pair(rtp_payload_type, info)); |
if (ret.second == false) { |
// Database already contains a decoder with type |rtp_payload_type|. |
return kDecoderExists; |
@@ -58,6 +117,7 @@ int DecoderDatabase::RegisterPayload(uint8_t rtp_payload_type, |
int DecoderDatabase::InsertExternal(uint8_t rtp_payload_type, |
NetEqDecoder codec_type, |
+ const std::string& codec_name, |
int fs_hz, |
AudioDecoder* decoder) { |
if (rtp_payload_type > 0x7F) { |
@@ -73,7 +133,7 @@ int DecoderDatabase::InsertExternal(uint8_t rtp_payload_type, |
return kInvalidPointer; |
} |
std::pair<DecoderMap::iterator, bool> ret; |
- DecoderInfo info(codec_type, fs_hz, decoder, true); |
+ DecoderInfo info(codec_type, codec_name, fs_hz, decoder, true); |
ret = decoders_.insert(std::make_pair(rtp_payload_type, info)); |
if (ret.second == false) { |
// Database already contains a decoder with type |rtp_payload_type|. |