diff --git a/tests/lavfi-regression.sh b/tests/lavfi-regression.sh index e1666c263c..5def09c2c9 100755 --- a/tests/lavfi-regression.sh +++ b/tests/lavfi-regression.sh @@ -50,9 +50,9 @@ do_lavfi_pixfmts(){ # exclude pixel formats which are not supported as input $ffmpeg -pix_fmts list 2>/dev/null | sed -ne '9,$p' | grep '^\..\.' | cut -d' ' -f2 | sort >$exclude_fmts - $showfiltfmts scale | awk -F '[ \r]' '/^OUTPUT/{ fmt=substr($3, 5); print fmt }' | sort | comm -23 - $exclude_fmts >$out_fmts + $showfiltfmts scale | awk -F '[ \r]' '/^OUTPUT/{ print $3 }' | sort | comm -23 - $exclude_fmts >$out_fmts - pix_fmts=$($showfiltfmts $filter $filter_args | awk -F '[ \r]' '/^INPUT/{ fmt=substr($3, 5); print fmt }' | sort | comm -12 - $out_fmts) + pix_fmts=$($showfiltfmts $filter $filter_args | awk -F '[ \r]' '/^INPUT/{ print $3 }' | sort | comm -12 - $out_fmts) for pix_fmt in $pix_fmts; do do_video_filter $pix_fmt "slicify=random,format=$pix_fmt,$filter=$filter_args" -pix_fmt $pix_fmt done diff --git a/tools/lavfi-showfiltfmts.c b/tools/lavfi-showfiltfmts.c index a4541bac82..cc19e00a8c 100644 --- a/tools/lavfi-showfiltfmts.c +++ b/tools/lavfi-showfiltfmts.c @@ -20,61 +20,15 @@ #include "libavformat/avformat.h" #include "libavutil/pixdesc.h" -#include "libavutil/samplefmt.h" #include "libavfilter/avfilter.h" -static void print_formats(AVFilterContext *filter_ctx) -{ - int i, j; - -#define PRINT_FMTS(inout, outin, INOUT) \ - for (i = 0; i < filter_ctx->input_count; i++) { \ - if (filter_ctx->inout##puts[i]->type == AVMEDIA_TYPE_VIDEO) { \ - AVFilterFormats *fmts = \ - filter_ctx->inout##puts[i]->outin##_formats; \ - for (j = 0; j < fmts->format_count; j++) \ - printf(#INOUT "PUT[%d] %s: fmt:%s\n", \ - i, filter_ctx->filter->inout##puts[i].name, \ - av_get_pix_fmt_name(fmts->formats[j])); \ - } else if (filter_ctx->inout##puts[i]->type == AVMEDIA_TYPE_AUDIO) { \ - AVFilterFormats *fmts; \ - \ - fmts = filter_ctx->inout##puts[i]->outin##_formats; \ - for (j = 0; j < fmts->format_count; j++) \ - printf(#INOUT "PUT[%d] %s: fmt:%s\n", \ - i, filter_ctx->filter->inout##puts[i].name, \ - av_get_sample_fmt_name(fmts->formats[j])); \ - \ - fmts = filter_ctx->inout##puts[i]->outin##_chlayouts; \ - for (j = 0; j < fmts->format_count; j++) { \ - char buf[256]; \ - av_get_channel_layout_string(buf, sizeof(buf), -1, \ - fmts->formats[j]); \ - printf(#INOUT "PUT[%d] %s: chlayout:%s\n", \ - i, filter_ctx->filter->inout##puts[i].name, buf); \ - } \ - \ - fmts = filter_ctx->inout##puts[i]->outin##_packing; \ - for (j = 0; j < fmts->format_count; j++) { \ - printf(#INOUT "PUT[%d] %s: packing:%s\n", \ - i, filter_ctx->filter->inout##puts[i].name, \ - fmts->formats[j] == AVFILTER_PACKED ? \ - "packed" : "planar"); \ - } \ - } \ - } \ - - PRINT_FMTS(in, out, IN); - PRINT_FMTS(out, in, OUT); -} - int main(int argc, char **argv) { AVFilter *filter; AVFilterContext *filter_ctx; const char *filter_name; const char *filter_args = NULL; - int i; + int i, j; av_log_set_level(AV_LOG_DEBUG); @@ -121,7 +75,23 @@ int main(int argc, char **argv) else avfilter_default_query_formats(filter_ctx); - print_formats(filter_ctx); + /* print the supported formats in input */ + for (i = 0; i < filter_ctx->input_count; i++) { + AVFilterFormats *fmts = filter_ctx->inputs[i]->out_formats; + for (j = 0; j < fmts->format_count; j++) + printf("INPUT[%d] %s: %s\n", + i, filter_ctx->filter->inputs[i].name, + av_get_pix_fmt_name(fmts->formats[j])); + } + + /* print the supported formats in output */ + for (i = 0; i < filter_ctx->output_count; i++) { + AVFilterFormats *fmts = filter_ctx->outputs[i]->in_formats; + for (j = 0; j < fmts->format_count; j++) + printf("OUTPUT[%d] %s: %s\n", + i, filter_ctx->filter->outputs[i].name, + av_get_pix_fmt_name(fmts->formats[j])); + } avfilter_free(filter_ctx); fflush(stdout);