The impulse response is scaled with 2/rdft_len.
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
... | ... |
@@ -554,6 +554,7 @@ static void generate_min_phase_kernel(FIREqualizerContext *s, float *rdft_buf) |
554 | 554 |
{ |
555 | 555 |
int k, cepstrum_len = s->cepstrum_len, rdft_len = s->rdft_len; |
556 | 556 |
double norm = 2.0 / cepstrum_len; |
557 |
+ double minval = 1e-7 / rdft_len; |
|
557 | 558 |
|
558 | 559 |
memset(s->cepstrum_buf, 0, cepstrum_len * sizeof(*s->cepstrum_buf)); |
559 | 560 |
memcpy(s->cepstrum_buf, rdft_buf, rdft_len/2 * sizeof(*rdft_buf)); |
... | ... |
@@ -561,11 +562,11 @@ static void generate_min_phase_kernel(FIREqualizerContext *s, float *rdft_buf) |
561 | 561 |
|
562 | 562 |
av_rdft_calc(s->cepstrum_rdft, s->cepstrum_buf); |
563 | 563 |
|
564 |
- s->cepstrum_buf[0] = log(FFMAX(s->cepstrum_buf[0], 1e-10)); |
|
565 |
- s->cepstrum_buf[1] = log(FFMAX(s->cepstrum_buf[1], 1e-10)); |
|
564 |
+ s->cepstrum_buf[0] = log(FFMAX(s->cepstrum_buf[0], minval)); |
|
565 |
+ s->cepstrum_buf[1] = log(FFMAX(s->cepstrum_buf[1], minval)); |
|
566 | 566 |
|
567 | 567 |
for (k = 2; k < cepstrum_len; k += 2) { |
568 |
- s->cepstrum_buf[k] = log(FFMAX(s->cepstrum_buf[k], 1e-10)); |
|
568 |
+ s->cepstrum_buf[k] = log(FFMAX(s->cepstrum_buf[k], minval)); |
|
569 | 569 |
s->cepstrum_buf[k+1] = 0; |
570 | 570 |
} |
571 | 571 |
|