summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2023-05-14 13:57:07 +0200
committerPaul B Mahol <onemda@gmail.com>2023-05-14 20:58:07 +0200
commit8041d002715bc499655c28481ed6c0bc74edc1b9 (patch)
tree859e65bdc2ee85b3a3d3b57cd77b75a651bf0db9 /libavfilter
parent7a63add0eaf0f890b4af990114710c6fabcfb4d7 (diff)
downloadffmpeg-8041d002715bc499655c28481ed6c0bc74edc1b9.tar.gz
avfilter/f_loop: fix looping for aloop
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/f_loop.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libavfilter/f_loop.c b/libavfilter/f_loop.c
index 5a91a0cbe9..7974d266f0 100644
--- a/libavfilter/f_loop.c
+++ b/libavfilter/f_loop.c
@@ -248,7 +248,11 @@ static int aactivate(AVFilterContext *ctx)
update_time(ctx, inlink->time_base);
if (!s->eof && (s->nb_samples < s->size || !s->loop || !s->size)) {
- ret = ff_inlink_consume_frame(inlink, &frame);
+ const int in_nb_samples = FFMIN(1024, s->size - s->nb_samples);
+ if (in_nb_samples == 0)
+ ret = ff_inlink_consume_frame(inlink, &frame);
+ else
+ ret = ff_inlink_consume_samples(inlink, in_nb_samples, in_nb_samples, &frame);
if (ret < 0)
return ret;
if (ret > 0)