summaryrefslogtreecommitdiff
path: root/src/opus_encoder.c
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@jmvalin.ca>2016-04-23 00:34:53 -0400
committerJean-Marc Valin <jmvalin@jmvalin.ca>2016-07-17 15:05:54 -0400
commit61714e9edbfc26645358d1b6ca796eb844bc3146 (patch)
treebe25924e51db28e38631683f26c2d342bde21eb8 /src/opus_encoder.c
parent45773d830f6b01345d14f4061dd9b62ec94987e6 (diff)
downloadopus-61714e9edbfc26645358d1b6ca796eb844bc3146.tar.gz
Quality: Increase CELT rate for voiced frames in hybrid mode
Diffstat (limited to 'src/opus_encoder.c')
-rw-r--r--src/opus_encoder.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/opus_encoder.c b/src/opus_encoder.c
index dbd6f7cb..4a1bd47a 100644
--- a/src/opus_encoder.c
+++ b/src/opus_encoder.c
@@ -1912,6 +1912,14 @@ opus_int32 opus_encode_native(OpusEncoder *st, const opus_val16 *pcm, int frame_
if (redundancy || st->mode != MODE_SILK_ONLY)
celt_encoder_ctl(celt_enc, CELT_SET_ANALYSIS(&analysis_info));
#endif
+ if (st->mode == MODE_HYBRID) {
+ SILKInfo info;
+ info.signalType = st->silk_mode.signalType;
+ info.offset = st->silk_mode.offset;
+ celt_encoder_ctl(celt_enc, CELT_SET_SILK_INFO(&info));
+ } else {
+ celt_encoder_ctl(celt_enc, CELT_SET_SILK_INFO((SILKInfo*)NULL));
+ }
/* 5 ms redundant frame for CELT->SILK */
if (redundancy && celt_to_silk)