Browse Source

avfilter/af_headphone: Check for the existence of samples

Not providing any samples makes no sense at all. And if no samples
were provided for one of the HRIR streams, one would either run into
an av_assert1 in ff_inlink_consume_samples() or into a segfault in
take_samples() in avfilter.c.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
tags/n4.4
Andreas Rheinhardt 5 years ago
parent
commit
dfd46e2d16
1 changed files with 7 additions and 1 deletions
  1. +7
    -1
      libavfilter/af_headphone.c

+ 7
- 1
libavfilter/af_headphone.c View File

@@ -631,8 +631,14 @@ static int activate(AVFilterContext *ctx)
if ((ret = check_ir(ctx->inputs[i], i)) < 0) if ((ret = check_ir(ctx->inputs[i], i)) < 0)
return ret; return ret;


if (ff_outlink_get_status(ctx->inputs[i]) == AVERROR_EOF)
if (ff_outlink_get_status(ctx->inputs[i]) == AVERROR_EOF) {
if (!ff_inlink_queued_samples(ctx->inputs[i])) {
av_log(ctx, AV_LOG_ERROR, "No samples provided for "
"HRIR stream %d.\n", i - 1);
return AVERROR_INVALIDDATA;
}
s->in[i].eof = 1; s->in[i].eof = 1;
}
} }


for (i = 1; i < s->nb_inputs; i++) { for (i = 1; i < s->nb_inputs; i++) {


Loading…
Cancel
Save