Commit 89b4e758 authored by Clément Bœsch's avatar Clément Bœsch

lavfi/blend: always peek the first frame of each queue.

Before the change, filter_frame() always waited for 2 samples in the
bottom frames queue. This notably fixes commands such as
./ffplay tests/lena.pnm -vf split,blend=c0_mode=addition
parent 859f7da5
...@@ -359,7 +359,7 @@ static int request_frame(AVFilterLink *outlink) ...@@ -359,7 +359,7 @@ static int request_frame(AVFilterLink *outlink)
b->frame_requested = 1; b->frame_requested = 1;
while (b->frame_requested) { while (b->frame_requested) {
in = ff_bufqueue_peek(&b->queue_top, TOP) ? BOTTOM : TOP; in = ff_bufqueue_peek(&b->queue_top, 0) ? BOTTOM : TOP;
ret = ff_request_frame(ctx->inputs[in]); ret = ff_request_frame(ctx->inputs[in]);
if (ret < 0) if (ret < 0)
return ret; return ret;
...@@ -413,8 +413,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf) ...@@ -413,8 +413,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
while (1) { while (1) {
AVFrame *top_buf, *bottom_buf, *out_buf; AVFrame *top_buf, *bottom_buf, *out_buf;
if (!ff_bufqueue_peek(&b->queue_top, TOP) || if (!ff_bufqueue_peek(&b->queue_top, 0) ||
!ff_bufqueue_peek(&b->queue_bottom, BOTTOM)) break; !ff_bufqueue_peek(&b->queue_bottom, 0)) break;
top_buf = ff_bufqueue_get(&b->queue_top); top_buf = ff_bufqueue_get(&b->queue_top);
bottom_buf = ff_bufqueue_get(&b->queue_bottom); bottom_buf = ff_bufqueue_get(&b->queue_bottom);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment