- if (!ff_bufqueue_peek(&merge->queue_main, 0) ||
- !ff_bufqueue_peek(&merge->queue_alpha, 0)) break;
+ if (!s->alpha_frame) {
+ ret = ff_inlink_consume_frame(ctx->inputs[1], &s->alpha_frame);
+ if (ret < 0)
+ return ret;
+ }
+
+ if (s->main_frame && s->alpha_frame) {
+ draw_frame(ctx, s->main_frame, s->alpha_frame);
+ ret = ff_filter_frame(outlink, s->main_frame);
+ av_frame_free(&s->alpha_frame);
+ s->main_frame = NULL;
+ return ret;
+ }