summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@jmvalin.ca>2016-06-06 13:43:13 -0400
committerJean-Marc Valin <jmvalin@jmvalin.ca>2016-06-06 13:43:13 -0400
commitd896a97ea6a143e09458e3e61b98e8facfa6e7b4 (patch)
treea66ab2e2329fe43ebd7de429d8139e9b758c2706
parent80232ff51f2f40461eec38d44bea85e6da0f584c (diff)
downloadopus-d896a97ea6a143e09458e3e61b98e8facfa6e7b4.tar.gz
Use SPREAD_AGGRESSIVE on non-transient hybrid frames
-rw-r--r--celt/celt_encoder.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/celt/celt_encoder.c b/celt/celt_encoder.c
index cb2f4c32..86081079 100644
--- a/celt/celt_encoder.c
+++ b/celt/celt_encoder.c
@@ -1793,7 +1793,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;