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

Unified Diff: webrtc/modules/audio_coding/neteq/decoder_database.cc

Issue 1484343003: NetEq: Add codec name and RTP timestamp rate to DecoderInfo (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: 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 side-by-side diff with in-line comments
Download patch
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|.

Powered by Google App Engine
This is Rietveld 408576698