diff options
author | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2016-06-06 13:43:13 -0400 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2016-07-19 16:11:50 -0400 |
commit | f705e9b5bd0b4c60b9934962aef7af3c0865272f (patch) | |
tree | 1b6421a6af2bdeace9c817ea8ccc7a147eecf4da | |
parent | 8229f07d3bfbef53f1d89cfd371b4deed6f92227 (diff) | |
download | opus-f705e9b5bd0b4c60b9934962aef7af3c0865272f.tar.gz |
Use SPREAD_AGGRESSIVE on non-transient hybrid frames
-rw-r--r-- | celt/celt_encoder.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/celt/celt_encoder.c b/celt/celt_encoder.c index 29f67c94..9486bd16 100644 --- a/celt/celt_encoder.c +++ b/celt/celt_encoder.c @@ -1800,7 +1800,15 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm, { st->tapset_decision = 0; st->spread_decision = SPREAD_NORMAL; - } else if (shortBlocks || st->complexity < 3 || nbAvailableBytes < 10*C || hybrid) + } else if (hybrid) + { + if (st->complexity == 0) + st->spread_decision = SPREAD_NONE; + else if (isTransient) + st->spread_decision = SPREAD_NORMAL; + else + st->spread_decision = SPREAD_AGGRESSIVE; + } else if (shortBlocks || st->complexity < 3 || nbAvailableBytes < 10*C) { if (st->complexity == 0) st->spread_decision = SPREAD_NONE; |