]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/vf_alphamerge.c
Merge commit 'c3e5c47bdae2bb8219fea62d91b7455650b22c60'
[ffmpeg] / libavfilter / vf_alphamerge.c
index 5f0da35eba9d894f91618184a0b256e84e58dc5b..a478de527a887116fd80b10899984f9ade65cc84 100644 (file)
@@ -36,7 +36,6 @@
 enum { Y, U, V, A };
 
 typedef struct {
-    int frame_requested;
     int is_packed_rgb;
     uint8_t rgba_map[4];
     struct FFBufQueue queue_main;
@@ -146,7 +145,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
         main_buf = ff_bufqueue_get(&merge->queue_main);
         alpha_buf = ff_bufqueue_get(&merge->queue_alpha);
 
-        merge->frame_requested = 0;
         draw_frame(ctx, main_buf, alpha_buf);
         ret = ff_filter_frame(ctx->outputs[0], main_buf);
         av_frame_free(&alpha_buf);
@@ -160,13 +158,10 @@ static int request_frame(AVFilterLink *outlink)
     AlphaMergeContext *merge = ctx->priv;
     int in, ret;
 
-    merge->frame_requested = 1;
-    while (merge->frame_requested) {
-        in = ff_bufqueue_peek(&merge->queue_main, 0) ? 1 : 0;
-        ret = ff_request_frame(ctx->inputs[in]);
-        if (ret < 0)
-            return ret;
-    }
+    in = ff_bufqueue_peek(&merge->queue_main, 0) ? 1 : 0;
+    ret = ff_request_frame(ctx->inputs[in]);
+    if (ret < 0)
+        return ret;
     return 0;
 }