p = NULL;
- ret = sscanf(arg, "%d", &band_noise[i]);
+ ret = av_sscanf(arg, "%d", &band_noise[i]);
if (ret != 1) {
av_log(s, AV_LOG_ERROR, "Custom band noise must be integer.\n");
break;
ThreadData td;
int ret = 0;
- if (!in) {
- in = ff_get_audio_buffer(outlink, s->window_length);
- if (!in)
- return AVERROR(ENOMEM);
- }
+ in = ff_get_audio_buffer(outlink, s->window_length);
+ if (!in)
+ return AVERROR(ENOMEM);
ret = av_audio_fifo_peek(s->fifo, (void **)in->extended_data, s->window_length);
if (ret < 0)
- return ret;
+ goto end;
if (s->track_noise) {
for (int ch = 0; ch < inlink->channels; ch++) {
dst[m] = orig[m] - src[m];
break;
default:
- return AVERROR_BUG;
+ av_frame_free(&out);
+ ret = AVERROR_BUG;
+ goto end;
}
memmove(src, src + s->sample_advance, (s->window_length - s->sample_advance) * sizeof(*src));
memset(src + (s->window_length - s->sample_advance), 0, s->sample_advance * sizeof(*src));
if (!strcmp(args, "start")) {
s->sample_noise_start = 1;
s->sample_noise_end = 0;
- } else if (!strcmp(args, "end")) {
+ } else if (!strcmp(args, "end") ||
+ !strcmp(args, "stop")) {
s->sample_noise_start = 0;
s->sample_noise_end = 1;
}
!strcmp(cmd, "noise_reduction")) {
float nr;
- if (sscanf(args, "%f", &nr) == 1) {
+ if (av_sscanf(args, "%f", &nr) == 1) {
s->noise_reduction = av_clipf(nr, 0.01, 97);
need_reset = 1;
}
!strcmp(cmd, "noise_floor")) {
float nf;
- if (sscanf(args, "%f", &nf) == 1) {
+ if (av_sscanf(args, "%f", &nf) == 1) {
s->noise_floor = av_clipf(nf, -80, -20);
need_reset = 1;
}