static int end_frame(AVFilterLink *link) { AVFilterContext *ctx = link->dst; ColorMatrixContext *color = ctx->priv; AVFilterBufferRef *out = color->outpicref; if (link->cur_buf->format == AV_PIX_FMT_YUV422P) process_frame_yuv422p(color, out, link->cur_buf); else if (link->cur_buf->format == AV_PIX_FMT_YUV420P) process_frame_yuv420p(color, out, link->cur_buf); else process_frame_uyvy422(color, out, link->cur_buf); ff_draw_slice(ctx->outputs[0], 0, link->dst->outputs[0]->h, 1); return ff_end_frame(ctx->outputs[0]); }
static void end_frame(AVFilterLink *link) { AVFilterContext *ctx = link->dst; ColorMatrixContext *color = ctx->priv; AVFilterBufferRef *out = link->dst->outputs[0]->out_buf; if (link->cur_buf->format == PIX_FMT_YUV422P) process_frame_yuv422p(color, out, link->cur_buf); else if (link->cur_buf->format == PIX_FMT_YUV420P) process_frame_yuv420p(color, out, link->cur_buf); else process_frame_uyvy422(color, out, link->cur_buf); avfilter_draw_slice(ctx->outputs[0], 0, link->dst->outputs[0]->h, 1); avfilter_end_frame(ctx->outputs[0]); avfilter_unref_buffer(link->cur_buf); }