diff options
author | Stefano Sabatini <stefasab@gmail.com> | 2012-12-02 01:11:52 +0100 |
---|---|---|
committer | Stefano Sabatini <stefasab@gmail.com> | 2012-12-02 12:42:29 +0100 |
commit | 217163eb985b6aad478e31ec84ac50498430afc2 (patch) | |
tree | a8e6306c95544f1c0bd7830845d62fc7b79e4bf4 /libavfilter/vf_alphamerge.c | |
parent | 83ab46a57e4b8c647366bf81679891164e215a00 (diff) | |
download | ffmpeg-217163eb985b6aad478e31ec84ac50498430afc2.tar.gz |
lavfi/alphamerge: switch to ff_filter_frame() API
Diffstat (limited to 'libavfilter/vf_alphamerge.c')
-rw-r--r-- | libavfilter/vf_alphamerge.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/libavfilter/vf_alphamerge.c b/libavfilter/vf_alphamerge.c index 1ec9d00478..bb5b9615c0 100644 --- a/libavfilter/vf_alphamerge.c +++ b/libavfilter/vf_alphamerge.c @@ -95,9 +95,6 @@ static int config_output(AVFilterLink *outlink) return 0; } -static int start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref) {return 0;} -static int draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) {return 0;} - static void draw_frame(AVFilterContext *ctx, AVFilterBufferRef *main_buf, AVFilterBufferRef *alpha_buf) @@ -127,10 +124,9 @@ static void draw_frame(AVFilterContext *ctx, FFMIN(main_linesize, alpha_linesize)); } } - ff_draw_slice(ctx->outputs[0], 0, h, 1); } -static int end_frame(AVFilterLink *inlink) +static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *buf) { AVFilterContext *ctx = inlink->dst; AlphaMergeContext *merge = ctx->priv; @@ -138,8 +134,7 @@ static int end_frame(AVFilterLink *inlink) int is_alpha = (inlink == ctx->inputs[1]); struct FFBufQueue *queue = (is_alpha ? &merge->queue_alpha : &merge->queue_main); - ff_bufqueue_add(ctx, queue, inlink->cur_buf); - inlink->cur_buf = NULL; + ff_bufqueue_add(ctx, queue, buf); while (1) { AVFilterBufferRef *main_buf, *alpha_buf; @@ -150,11 +145,9 @@ static int end_frame(AVFilterLink *inlink) main_buf = ff_bufqueue_get(&merge->queue_main); alpha_buf = ff_bufqueue_get(&merge->queue_alpha); - ctx->outputs[0]->out_buf = main_buf; - ff_start_frame(ctx->outputs[0], avfilter_ref_buffer(main_buf, ~0)); merge->frame_requested = 0; draw_frame(ctx, main_buf, alpha_buf); - ff_end_frame(ctx->outputs[0]); + ff_filter_frame(ctx->outputs[0], avfilter_ref_buffer(main_buf, ~0)); avfilter_unref_buffer(alpha_buf); } return 0; @@ -182,16 +175,12 @@ static const AVFilterPad alphamerge_inputs[] = { .type = AVMEDIA_TYPE_VIDEO, .config_props = config_input_main, .get_video_buffer = ff_null_get_video_buffer, - .start_frame = start_frame, - .draw_slice = draw_slice, - .end_frame = end_frame, + .filter_frame = filter_frame, .min_perms = AV_PERM_READ | AV_PERM_WRITE | AV_PERM_PRESERVE, },{ .name = "alpha", .type = AVMEDIA_TYPE_VIDEO, - .start_frame = start_frame, - .draw_slice = draw_slice, - .end_frame = end_frame, + .filter_frame = filter_frame, .min_perms = AV_PERM_READ | AV_PERM_PRESERVE, }, { NULL } |