]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/vf_colormatrix.c
ass subtitles: Fix valgrind warnings.
[ffmpeg] / libavfilter / vf_colormatrix.c
index 0784c82835aa499662cea1d66814da0516d53f0b..45bff8f6e4ba838e96f4f3d0d6daef08ba22d281 100644 (file)
@@ -61,6 +61,7 @@ typedef struct {
     char src[256];
     char dst[256];
     int hsub, vsub;
+    AVFilterBufferRef *outpicref;
 } ColorMatrixContext;
 
 #define ma m[0][0]
@@ -313,7 +314,7 @@ static int config_input(AVFilterLink *inlink)
     color->hsub = pix_desc->log2_chroma_w;
     color->vsub = pix_desc->log2_chroma_h;
 
-    av_log(ctx, AV_LOG_INFO, "%s -> %s\n", color->src, color->dst);
+    av_log(ctx, AV_LOG_VERBOSE, "%s -> %s\n", color->src, color->dst);
 
     return 0;
 }
@@ -339,20 +340,22 @@ static AVFilterBufferRef *get_video_buffer(AVFilterLink *inlink, int perms, int
     return picref;
 }
 
-static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
+static int start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
 {
+    AVFilterContext *ctx = link->dst;
+    ColorMatrixContext *color = ctx->priv;
     AVFilterBufferRef *outpicref = avfilter_ref_buffer(picref, ~0);
 
-    link->dst->outputs[0]->out_buf = outpicref;
+    color->outpicref = outpicref;
 
-    ff_start_frame(link->dst->outputs[0], outpicref);
+    return ff_start_frame(link->dst->outputs[0], outpicref);
 }
 
-static void end_frame(AVFilterLink *link)
+static int end_frame(AVFilterLink *link)
 {
     AVFilterContext *ctx = link->dst;
     ColorMatrixContext *color = ctx->priv;
-    AVFilterBufferRef *out = link->dst->outputs[0]->out_buf;
+    AVFilterBufferRef *out = color->outpicref;
 
     if (link->cur_buf->format == PIX_FMT_YUV422P)
         process_frame_yuv422p(color, out, link->cur_buf);
@@ -362,11 +365,10 @@ static void end_frame(AVFilterLink *link)
         process_frame_uyvy422(color, out, link->cur_buf);
 
     ff_draw_slice(ctx->outputs[0], 0, link->dst->outputs[0]->h, 1);
-    ff_end_frame(ctx->outputs[0]);
-    avfilter_unref_buffer(link->cur_buf);
+    return ff_end_frame(ctx->outputs[0]);
 }
 
-static void null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir) { }
+static int null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir) { return 0; }
 
 AVFilter avfilter_vf_colormatrix = {
     .name          = "colormatrix",