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
This commit is contained in:
parent
859f7da543
commit
89b4e758d3
@ -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)
|
|||||||
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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user