*/
#include "libavutil/imgutils.h"
+#include "libavutil/avassert.h"
#include "avfilter.h"
#include "internal.h"
return 0;
}
-static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
+static av_cold int init(AVFilterContext *ctx, const char *args)
{
TInterlaceContext *tinterlace = ctx->priv;
int i;
tinterlace->black_linesize[i] * h);
}
}
- av_log(ctx, AV_LOG_INFO, "mode:%s h:%d -> h:%d\n",
+ av_log(ctx, AV_LOG_VERBOSE, "mode:%s h:%d -> h:%d\n",
tinterlace_mode_str[tinterlace->mode], inlink->h, outlink->h);
return 0;
}
}
-static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref)
+static int start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref)
{
AVFilterContext *ctx = inlink->dst;
TInterlaceContext *tinterlace = ctx->priv;
avfilter_unref_buffer(tinterlace->cur);
tinterlace->cur = tinterlace->next;
tinterlace->next = picref;
+ return 0;
}
-static void end_frame(AVFilterLink *inlink)
+static int end_frame(AVFilterLink *inlink)
{
AVFilterContext *ctx = inlink->dst;
AVFilterLink *outlink = ctx->outputs[0];
/* we need at least two frames */
if (!tinterlace->cur)
- return;
+ return 0;
switch (tinterlace->mode) {
case MODE_MERGE: /* move the odd frame into the upper field of the new image, even into
ff_end_frame(outlink);
tinterlace->frame++;
+
+ return 0;
}
static int poll_frame(AVFilterLink *outlink)
return ret;
val = ff_poll_frame(inlink);
}
- assert(tinterlace->next);
+ av_assert0(tinterlace->next);
return val;
}
return 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_tinterlace = {
.name = "tinterlace",