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

Unified Diff: webrtc/modules/audio_coding/codecs/opus/opus_interface.c

Issue 1715423002: Remove workaround for Opus DTX noise pumping issue. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 10 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/codecs/opus/opus_interface.c
diff --git a/webrtc/modules/audio_coding/codecs/opus/opus_interface.c b/webrtc/modules/audio_coding/codecs/opus/opus_interface.c
index 9dc7ef95fef9a870e04794bda0de5ad18667bed5..bcb05966445ba389291e40382fbc16a1a0ac2673 100644
--- a/webrtc/modules/audio_coding/codecs/opus/opus_interface.c
+++ b/webrtc/modules/audio_coding/codecs/opus/opus_interface.c
@@ -30,15 +30,6 @@ enum {
/* Default frame size, 20 ms @ 48 kHz, in samples (for one channel). */
kWebRtcOpusDefaultFrameSize = 960,
-
- // Maximum number of consecutive zeros, beyond or equal to which DTX can fail.
- kZeroBreakCount = 157,
-
-#if defined(OPUS_FIXED_POINT)
- kZeroBreakValue = 10,
-#else
- kZeroBreakValue = 1,
-#endif
};
int16_t WebRtcOpus_EncoderCreate(OpusEncInst** inst,
@@ -62,10 +53,6 @@ int16_t WebRtcOpus_EncoderCreate(OpusEncInst** inst,
OpusEncInst* state = calloc(1, sizeof(OpusEncInst));
assert(state);
- // Allocate zero counters.
- state->zero_counts = calloc(channels, sizeof(size_t));
- assert(state->zero_counts);
-
int error;
state->encoder = opus_encoder_create(48000, (int)channels, opus_app,
&error);
@@ -84,7 +71,6 @@ int16_t WebRtcOpus_EncoderCreate(OpusEncInst** inst,
int16_t WebRtcOpus_EncoderFree(OpusEncInst* inst) {
if (inst) {
opus_encoder_destroy(inst->encoder);
- free(inst->zero_counts);
free(inst);
return 0;
} else {
@@ -98,42 +84,13 @@ int WebRtcOpus_Encode(OpusEncInst* inst,
size_t length_encoded_buffer,
uint8_t* encoded) {
int res;
- size_t i;
- size_t c;
-
- int16_t buffer[2 * 48 * kWebRtcOpusMaxEncodeFrameSizeMs];
if (samples > 48 * kWebRtcOpusMaxEncodeFrameSizeMs) {
return -1;
}
- const size_t channels = inst->channels;
- int use_buffer = 0;
-
- // Break long consecutive zeros by forcing a "1" every |kZeroBreakCount|
- // samples.
- if (inst->in_dtx_mode) {
- for (i = 0; i < samples; ++i) {
- for (c = 0; c < channels; ++c) {
- if (audio_in[i * channels + c] == 0) {
- ++inst->zero_counts[c];
- if (inst->zero_counts[c] == kZeroBreakCount) {
- if (!use_buffer) {
- memcpy(buffer, audio_in, samples * channels * sizeof(int16_t));
- use_buffer = 1;
- }
- buffer[i * channels + c] = kZeroBreakValue;
- inst->zero_counts[c] = 0;
- }
- } else {
- inst->zero_counts[c] = 0;
- }
- }
- }
- }
-
res = opus_encode(inst->encoder,
- use_buffer ? buffer : audio_in,
+ (const opus_int16*)audio_in,
(int)samples,
encoded,
(opus_int32)length_encoded_buffer);
« no previous file with comments | « webrtc/modules/audio_coding/codecs/opus/opus_inst.h ('k') | webrtc/modules/audio_coding/codecs/opus/opus_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698