if (av_frame_is_writable(in)) {
out = in;
} else {
- out = ff_get_audio_buffer(inlink, in->nb_samples);
+ out = ff_get_audio_buffer(outlink, in->nb_samples);
if (!out) {
av_frame_free(&in);
return AVERROR(ENOMEM);
s->buffer_size = inlink->sample_rate * s->attack * inlink->channels;
s->buffer_size -= s->buffer_size % inlink->channels;
+ if (s->buffer_size <= 0) {
+ av_log(ctx, AV_LOG_ERROR, "Attack is too small.\n");
+ return AVERROR(EINVAL);
+ }
+
return 0;
}