Disable patch_transient_decision() on hybrid since it's causing artifacts
authorJean-Marc Valin <jmvalin@jmvalin.ca>
Mon, 6 Jun 2016 20:52:50 +0000 (16:52 -0400)
committerJean-Marc Valin <jmvalin@jmvalin.ca>
Tue, 19 Jul 2016 20:11:50 +0000 (16:11 -0400)
It would trigger on the second frame of "S"s, causing holes in the spectrum

celt/celt_encoder.c

index 7c949cc..98cf4a8 100644 (file)
@@ -1731,7 +1731,7 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm,
 
    /* Last chance to catch any transient we might have missed in the
       time-domain analysis */
-   if (LM>0 && ec_tell(enc)+3<=total_bits && !isTransient && st->complexity>=5 && !st->lfe)
+   if (LM>0 && ec_tell(enc)+3<=total_bits && !isTransient && st->complexity>=5 && !st->lfe && !hybrid)
    {
       if (patch_transient_decision(bandLogE, oldBandE, nbEBands, start, end, C))
       {