dst += channels;
src += channels;
s->index++;
- if (s->index >= inlink->sample_rate)
+ if (s->index >= inlink->sample_rate / s->freq)
s->index = 0;
}
const double offset = 1. - s->depth / 2.;
int i;
- s->table = av_malloc_array(inlink->sample_rate, sizeof(*s->table));
+ s->table = av_malloc_array(inlink->sample_rate / s->freq, sizeof(*s->table));
if (!s->table)
return AVERROR(ENOMEM);
- for (i = 0; i < inlink->sample_rate; i++) {
+ for (i = 0; i < inlink->sample_rate / s->freq; i++) {
double env = s->freq * i / inlink->sample_rate;
env = sin(2 * M_PI * fmod(env + 0.25, 1.0));
s->table[i] = env * (1 - fabs(offset)) + offset;