+ if (use_ltp) { + int ltp_smp; + + for (ltp_smp = 0; ltp_smp < block_length; ltp_smp++) { + int center = ltp_smp - lag; + int begin = FFMAX(0, center - 2); + int end = center + 3; + int tab = 5 - (end - begin); + int base; + + y = 1 << 6; + + for (base = begin; base < end; base++, tab++) + y += MUL64(gain[tab], raw_samples[base]); + + raw_samples[ltp_smp] += y >> 7; + } + }
Maybe you could calculate the point where begin < end so that you don't have a lot of unneeded raw_samples[ltp_smp] += 0.
Good point. Done!
Good job. I assume it works with conformance test samples?
With the conformance as well as my own test files, yes. Thanks! -Thilo