ref: 4a8c1f11b106f448df174a8232817c238675d367
parent: 2794b63083124b236ef8159485d65a3173269c8e
author: Jean-Marc Valin <[email protected]>
date: Wed Oct 13 14:03:50 EDT 2010
Making it possible to have two transients in a row for longer frames
--- a/libcelt/celt.c
+++ b/libcelt/celt.c
@@ -224,8 +224,8 @@
tmp[i] = 0;
begin[0] = 0;
- for (i=0;i<len;i++)
- begin[i+1] = MAX32(begin[i], ABS32(tmp[i]));
+ for (i=0;i<len;i++)
+ begin[i+1] = MAX32(begin[i], ABS32(tmp[i]));
n = -1;
@@ -256,7 +256,13 @@
*transient_time = n;
*frame_max = begin[len-overlap];
-
+ /* Only consider the last 7.5 ms for the next transient */
+ if (len>360+overlap)
+ {
+ *frame_max = 0;
+ for (i=len-360-overlap;i<len;i++)
+ *frame_max = MAX32(*frame_max, ABS32(tmp[i]));
+ }
RESTORE_STACK;
return ratio > 0;
}