summaryrefslogtreecommitdiffstats
path: root/player/lavfi.c
diff options
context:
space:
mode:
Diffstat (limited to 'player/lavfi.c')
-rw-r--r--player/lavfi.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/player/lavfi.c b/player/lavfi.c
index 40537c7ba8..76b47450ea 100644
--- a/player/lavfi.c
+++ b/player/lavfi.c
@@ -508,8 +508,9 @@ static void feed_input_pads(struct lavfi *c)
MP_FATAL(c, "could not pass frame to filter\n");
av_frame_free(&frame);
- pad->input_waiting = pad->input_again = false;
+ pad->input_again = false;
pad->input_eof = eof;
+ pad->input_waiting = eof; // input _might_ come again in the future
}
}
@@ -533,7 +534,7 @@ static void read_output_pads(struct lavfi *c)
assert(pad->buffer);
assert(!pad->pending_v && !pad->pending_a);
- int r = AVERROR(EAGAIN);
+ int r = AVERROR_EOF;
if (!pad->buffer_is_eof)
r = av_buffersink_get_frame(pad->buffer, pad->tmp_frame);
if (r >= 0) {
@@ -690,7 +691,7 @@ void lavfi_send_status(struct lavfi_pad *pad, int status)
assert(status != DATA_OK);
assert(!pad->pending_v && !pad->pending_a);
- pad->input_waiting = status == DATA_WAIT;
+ pad->input_waiting = status == DATA_WAIT || status == DATA_EOF;
pad->input_again = status == DATA_AGAIN;
pad->input_eof = status == DATA_EOF;
}