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

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

Issue 1868143002: Convert CNG into C++ and remove it from AudioDecoder (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Implicit conversion to ArrayView in TestSidErroneous Created 4 years, 8 months 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/comfort_noise.cc
diff --git a/webrtc/modules/audio_coding/neteq/comfort_noise.cc b/webrtc/modules/audio_coding/neteq/comfort_noise.cc
index a5b08469beaec716e9c5e27424f3244a3ab6ab31..2a512bd750f258491f3fac1a77f25ae356da59b1 100644
--- a/webrtc/modules/audio_coding/neteq/comfort_noise.cc
+++ b/webrtc/modules/audio_coding/neteq/comfort_noise.cc
@@ -14,7 +14,6 @@
#include "webrtc/base/logging.h"
#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
-#include "webrtc/modules/audio_coding/codecs/cng/webrtc_cng.h"
#include "webrtc/modules/audio_coding/neteq/decoder_database.h"
#include "webrtc/modules/audio_coding/neteq/dsp_helper.h"
#include "webrtc/modules/audio_coding/neteq/sync_buffer.h"
@@ -23,31 +22,23 @@ namespace webrtc {
void ComfortNoise::Reset() {
first_call_ = true;
- internal_error_code_ = 0;
}
int ComfortNoise::UpdateParameters(Packet* packet) {
assert(packet); // Existence is verified by caller.
// Get comfort noise decoder.
- AudioDecoder* cng_decoder = decoder_database_->GetDecoder(
- packet->header.payloadType);
- if (!cng_decoder) {
+ if (decoder_database_->SetActiveCngDecoder(packet->header.payloadType)
+ != kOK) {
delete [] packet->payload;
delete packet;
return kUnknownPayloadType;
}
- decoder_database_->SetActiveCngDecoder(packet->header.payloadType);
- CNG_dec_inst* cng_inst = cng_decoder->CngDecoderInstance();
- int16_t ret = WebRtcCng_UpdateSid(cng_inst,
- packet->payload,
- packet->payload_length);
+ ComfortNoiseDecoder* cng_decoder = decoder_database_->GetActiveCngDecoder();
+ RTC_DCHECK(cng_decoder);
+ cng_decoder->UpdateSid(rtc::ArrayView<const uint8_t>(
+ packet->payload, packet->payload_length));
delete [] packet->payload;
delete packet;
- if (ret < 0) {
- internal_error_code_ = WebRtcCng_GetErrorCodeDec(cng_inst);
- LOG(LS_ERROR) << "WebRtcCng_UpdateSid produced " << internal_error_code_;
- return kInternalError;
- }
return kOK;
}
@@ -63,28 +54,28 @@ int ComfortNoise::Generate(size_t requested_length,
}
size_t number_of_samples = requested_length;
- int16_t new_period = 0;
+ bool new_period = false;
if (first_call_) {
// Generate noise and overlap slightly with old data.
number_of_samples = requested_length + overlap_length_;
- new_period = 1;
+ new_period = true;
}
output->AssertSize(number_of_samples);
// Get the decoder from the database.
- AudioDecoder* cng_decoder = decoder_database_->GetActiveCngDecoder();
+ ComfortNoiseDecoder* cng_decoder = decoder_database_->GetActiveCngDecoder();
if (!cng_decoder) {
LOG(LS_ERROR) << "Unknwown payload type";
return kUnknownPayloadType;
}
- CNG_dec_inst* cng_inst = cng_decoder->CngDecoderInstance();
// The expression &(*output)[0][0] is a pointer to the first element in
// the first channel.
- if (WebRtcCng_Generate(cng_inst, &(*output)[0][0], number_of_samples,
- new_period) < 0) {
+ if (!cng_decoder->Generate(
+ rtc::ArrayView<int16_t>(&(*output)[0][0], number_of_samples),
+ new_period)) {
// Error returned.
output->Zeros(requested_length);
- internal_error_code_ = WebRtcCng_GetErrorCodeDec(cng_inst);
- LOG(LS_ERROR) << "WebRtcCng_Generate produced " << internal_error_code_;
+ LOG(LS_ERROR) <<
+ "ComfortNoiseDecoder::Genererate failed to generate comfort noise";
return kInternalError;
}
« no previous file with comments | « webrtc/modules/audio_coding/neteq/comfort_noise.h ('k') | webrtc/modules/audio_coding/neteq/decoder_database.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698