diff --git a/filters/f_swresample.c b/filters/f_swresample.c index 39efe173bf..2bb1e4cd02 100644 --- a/filters/f_swresample.c +++ b/filters/f_swresample.c @@ -668,12 +668,13 @@ static void process(struct mp_filter *f) if (p->input && out.type) { mp_pin_in_write(f->ppins[1], out); - mp_pin_out_request_data(f->ppins[0]); } else if (!p->input && out.type) { mp_pin_in_write(f->ppins[1], out); mp_pin_out_repeat_eof(f->ppins[0]); } else if (!p->input) { mp_pin_in_write(f->ppins[1], MP_EOF_FRAME); + } else { + mp_filter_internal_mark_progress(f); // try to consume more input } if (p->input && !mp_aframe_get_size(p->input))