Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.xiph.org/xiph/opus.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGustaf Ullberg <gustaf.ullberg@gmail.com>2019-12-04 13:00:56 +0300
committerFelicia Lim <flim@google.com>2019-12-04 22:48:50 +0300
commit93b373e884915e802188cec844a7dda2fa184ebc (patch)
treeaca7954569776e295355a2fede94ce10403cede5 /src
parent8493bf50892be0e902a354444747e6d14f2a6a10 (diff)
OPUS_GET_IN_DTX handles Silk middle channel only
Signed-off-by: Felicia Lim <flim@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/opus_encoder.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/opus_encoder.c b/src/opus_encoder.c
index e98ac5b8..844b08dd 100644
--- a/src/opus_encoder.c
+++ b/src/opus_encoder.c
@@ -2736,11 +2736,11 @@ int opus_encoder_ctl(OpusEncoder *st, int request, ...)
}
if (st->silk_mode.useDTX && (st->prev_mode == MODE_SILK_ONLY || st->prev_mode == MODE_HYBRID)) {
/* DTX determined by Silk. */
- int n;
- void *silk_enc = (char*)st+st->silk_enc_offset;
- *value = 1;
- for (n=0;n<st->silk_mode.nChannelsInternal;n++) {
- *value = *value && ((silk_encoder*)silk_enc)->state_Fxx[n].sCmn.noSpeechCounter >= NB_SPEECH_FRAMES_BEFORE_DTX;
+ silk_encoder *silk_enc = (silk_encoder*)((char*)st+st->silk_enc_offset);
+ *value = silk_enc->state_Fxx[0].sCmn.noSpeechCounter >= NB_SPEECH_FRAMES_BEFORE_DTX;
+ /* Stereo: check second channel unless only the middle channel was encoded. */
+ if(*value == 1 && st->silk_mode.nChannelsInternal == 2 && silk_enc->prev_decode_only_middle == 0) {
+ *value = silk_enc->state_Fxx[1].sCmn.noSpeechCounter >= NB_SPEECH_FRAMES_BEFORE_DTX;
}
}
#ifndef DISABLE_FLOAT_API
@@ -2754,7 +2754,6 @@ int opus_encoder_ctl(OpusEncoder *st, int request, ...)
}
}
break;
-
case CELT_GET_MODE_REQUEST:
{
const CELTMode ** value = va_arg(ap, const CELTMode**);