X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavfilter%2Fvf_blackframe.c;h=16b2870d5e19fc8f867bffc24477ccd2346276f9;hb=50b4dbf65a8b0fbd0155e1ffc0ed58fa591d3736;hp=7e80fd7e466f4b29c41a5bef308786a71b34ded8;hpb=de2cfb744a207cc09bc961c859d7ae91cb6192b4;p=ffmpeg diff --git a/libavfilter/vf_blackframe.c b/libavfilter/vf_blackframe.c index 7e80fd7e466..16b2870d5e1 100644 --- a/libavfilter/vf_blackframe.c +++ b/libavfilter/vf_blackframe.c @@ -29,6 +29,9 @@ #include "avfilter.h" #include "internal.h" +#include "formats.h" +#include "internal.h" +#include "video.h" typedef struct { unsigned int bamount; ///< black amount @@ -46,11 +49,11 @@ static int query_formats(AVFilterContext *ctx) PIX_FMT_NONE }; - avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts)); + ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); return 0; } -static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) +static av_cold int init(AVFilterContext *ctx, const char *args) { BlackFrameContext *blackframe = ctx->priv; @@ -63,7 +66,7 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) if (args) sscanf(args, "%u:%u", &blackframe->bamount, &blackframe->bthresh); - av_log(ctx, AV_LOG_INFO, "bamount:%u bthresh:%u\n", + av_log(ctx, AV_LOG_VERBOSE, "bamount:%u bthresh:%u\n", blackframe->bamount, blackframe->bthresh); if (blackframe->bamount > 100 || blackframe->bthresh > 255) { @@ -74,7 +77,7 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) return 0; } -static void draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) +static int draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) { AVFilterContext *ctx = inlink->dst; BlackFrameContext *blackframe = ctx->priv; @@ -88,10 +91,10 @@ static void draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) p += picref->linesize[0]; } - avfilter_draw_slice(ctx->outputs[0], y, h, slice_dir); + return ff_draw_slice(ctx->outputs[0], y, h, slice_dir); } -static void end_frame(AVFilterLink *inlink) +static int end_frame(AVFilterLink *inlink) { AVFilterContext *ctx = inlink->dst; BlackFrameContext *blackframe = ctx->priv; @@ -111,8 +114,7 @@ static void end_frame(AVFilterLink *inlink) blackframe->frame++; blackframe->nblack = 0; - avfilter_unref_buffer(picref); - avfilter_end_frame(inlink->dst->outputs[0]); + return ff_end_frame(inlink->dst->outputs[0]); } AVFilter avfilter_vf_blackframe = { @@ -124,13 +126,13 @@ AVFilter avfilter_vf_blackframe = { .query_formats = query_formats, - .inputs = (const AVFilterPad[]) {{ .name = "default", - .type = AVMEDIA_TYPE_VIDEO, - .draw_slice = draw_slice, - .get_video_buffer = avfilter_null_get_video_buffer, - .start_frame = ff_null_start_frame_keep_ref, - .end_frame = end_frame, }, - { .name = NULL}}, + .inputs = (const AVFilterPad[]) {{ .name = "default", + .type = AVMEDIA_TYPE_VIDEO, + .draw_slice = draw_slice, + .get_video_buffer = ff_null_get_video_buffer, + .start_frame = ff_null_start_frame, + .end_frame = end_frame, }, + { .name = NULL}}, .outputs = (const AVFilterPad[]) {{ .name = "default", .type = AVMEDIA_TYPE_VIDEO },