X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavfilter%2Fvf_edgedetect.c;h=ac88e02a11b5f441f2c3c399b47e6533a58e2cac;hb=bd76a4822f989f30c6dc109a5157d6239a6b1112;hp=1fb66bccfc651d674d9ab07a8872278f87a84c84;hpb=3e486162267f1de4447dc6e6bd45ac666647ba7e;p=ffmpeg diff --git a/libavfilter/vf_edgedetect.c b/libavfilter/vf_edgedetect.c index 1fb66bccfc6..ac88e02a11b 100644 --- a/libavfilter/vf_edgedetect.c +++ b/libavfilter/vf_edgedetect.c @@ -78,17 +78,22 @@ static av_cold int init(AVFilterContext *ctx) static int query_formats(AVFilterContext *ctx) { const EdgeDetectContext *edgedetect = ctx->priv; + static const enum AVPixelFormat wires_pix_fmts[] = {AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE}; + static const enum AVPixelFormat colormix_pix_fmts[] = {AV_PIX_FMT_GBRP, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE}; + AVFilterFormats *fmts_list; + const enum AVPixelFormat *pix_fmts = NULL; if (edgedetect->mode == MODE_WIRES) { - static const enum AVPixelFormat pix_fmts[] = {AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE}; - ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); + pix_fmts = wires_pix_fmts; } else if (edgedetect->mode == MODE_COLORMIX) { - static const enum AVPixelFormat pix_fmts[] = {AV_PIX_FMT_GBRP, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE}; - ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); + pix_fmts = colormix_pix_fmts; } else { av_assert0(0); } - return 0; + fmts_list = ff_make_format_list(pix_fmts); + if (!fmts_list) + return AVERROR(ENOMEM); + return ff_set_common_formats(ctx, fmts_list); } static int config_props(AVFilterLink *inlink)