diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-10-05 22:18:36 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-10-10 12:04:30 +0200 |
commit | 9a1547ba1e4e733aaf8d77ccc3d3576edea9f190 (patch) | |
tree | eb84779ff5d3dfcc6120adb16913f11858709f0b /libavfilter/tests/filtfmts.c | |
parent | a228baeee157e2360bca92228f7168be97709335 (diff) | |
download | ffmpeg-9a1547ba1e4e733aaf8d77ccc3d3576edea9f190.tar.gz |
avfilter/tests/filtfmts: Check for existence of formats/channel layouts
Fixes segfaults with filters that either return AVERROR(EAGAIN)
(or another error) or that do not set everything and rely on
filter_query_formats() to set the rest.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavfilter/tests/filtfmts.c')
-rw-r--r-- | libavfilter/tests/filtfmts.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libavfilter/tests/filtfmts.c b/libavfilter/tests/filtfmts.c index 07e387b92e..d793480344 100644 --- a/libavfilter/tests/filtfmts.c +++ b/libavfilter/tests/filtfmts.c @@ -43,7 +43,7 @@ static void print_formats_internal(AVFilterLink **links, const AVFilterPad *pads if (link->type == AVMEDIA_TYPE_VIDEO) { const AVFilterFormats *const fmts = cfg->formats; - for (unsigned j = 0; j < fmts->nb_formats; j++) { + for (unsigned j = 0; fmts && j < fmts->nb_formats; j++) { printf("%s[%u] %s: fmt:%s\n", inout_string, i, pad_name, av_get_pix_fmt_name(fmts->formats[j])); @@ -52,12 +52,12 @@ static void print_formats_internal(AVFilterLink **links, const AVFilterPad *pads const AVFilterFormats *const fmts = cfg->formats; const AVFilterChannelLayouts *const layouts = cfg->channel_layouts; - for (unsigned j = 0; j < fmts->nb_formats; j++) + for (unsigned j = 0; fmts && j < fmts->nb_formats; j++) printf("%s[%u] %s: fmt:%s\n", inout_string, i, pad_name, av_get_sample_fmt_name(fmts->formats[j])); - for (unsigned j = 0; j < layouts->nb_channel_layouts; j++) { + for (unsigned j = 0; layouts && j < layouts->nb_channel_layouts; j++) { char buf[256]; av_get_channel_layout_string(buf, sizeof(buf), -1, layouts->channel_layouts[j]); |