diff --git a/libavfilter/vf_waveform.c b/libavfilter/vf_waveform.c index 64abbf2226..70995eebee 100644 --- a/libavfilter/vf_waveform.c +++ b/libavfilter/vf_waveform.c @@ -166,7 +166,7 @@ static const enum AVPixelFormat in_lowpass_pix_fmts[] = { AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_YUVJ411P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_YUVA420P, - AV_PIX_FMT_GRAY8, + AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY10, AV_PIX_FMT_GRAY12, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV422P9, AV_PIX_FMT_YUV420P9, AV_PIX_FMT_YUVA444P9, AV_PIX_FMT_YUVA422P9, AV_PIX_FMT_YUVA420P9, AV_PIX_FMT_YUV444P10, AV_PIX_FMT_YUV422P10, AV_PIX_FMT_YUV420P10, @@ -252,6 +252,16 @@ static const enum AVPixelFormat out_gray8_lowpass_pix_fmts[] = { AV_PIX_FMT_NONE }; +static const enum AVPixelFormat out_gray10_lowpass_pix_fmts[] = { + AV_PIX_FMT_GRAY10, + AV_PIX_FMT_NONE +}; + +static const enum AVPixelFormat out_gray12_lowpass_pix_fmts[] = { + AV_PIX_FMT_GRAY12, + AV_PIX_FMT_NONE +}; + static const enum AVPixelFormat flat_pix_fmts[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUV444P9, AV_PIX_FMT_YUV444P10, @@ -301,6 +311,10 @@ static int query_formats(AVFilterContext *ctx) if (s->filter == LOWPASS && ncomp == 1 && depth == 8) out_pix_fmts = out_gray8_lowpass_pix_fmts; + else if (s->filter == LOWPASS && ncomp == 1 && depth == 10) + out_pix_fmts = out_gray10_lowpass_pix_fmts; + else if (s->filter == LOWPASS && ncomp == 1 && depth == 12) + out_pix_fmts = out_gray12_lowpass_pix_fmts; else if (rgb && depth == 8 && ncomp > 2) out_pix_fmts = out_rgb8_lowpass_pix_fmts; else if (rgb && depth == 9 && ncomp > 2)