--- libavfilter/filtfmts.c | 58 ++++++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 26 deletions(-)
diff --git a/libavfilter/filtfmts.c b/libavfilter/filtfmts.c index c1025b9..d214c6c 100644 --- a/libavfilter/filtfmts.c +++ b/libavfilter/filtfmts.c @@ -34,32 +34,34 @@ static void print_formats(AVFilterContext *filter_ctx) #define PRINT_FMTS(inout, outin, INOUT) \ for (i = 0; i < filter_ctx->nb_##inout##puts; 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->nb_formats; j++) \ - if(av_get_pix_fmt_name(fmts->formats[j])) \ - printf(#INOUT "PUT[%d] %s: fmt:%s\n", \ - i, avfilter_pad_get_name(filter_ctx->inout##put_pads, i), \ - av_get_pix_fmt_name(fmts->formats[j])); \ - } else if (filter_ctx->inout##puts[i]->type == AVMEDIA_TYPE_AUDIO) { \ - AVFilterFormats *fmts; \ - AVFilterChannelLayouts *layouts; \ - \ - fmts = filter_ctx->inout##puts[i]->outin##_formats; \ - for (j = 0; j < fmts->nb_formats; j++) \ - printf(#INOUT "PUT[%d] %s: fmt:%s\n", \ - i, avfilter_pad_get_name(filter_ctx->inout##put_pads, i), \ - av_get_sample_fmt_name(fmts->formats[j])); \ - \ - layouts = filter_ctx->inout##puts[i]->outin##_channel_layouts; \ - for (j = 0; j < layouts->nb_channel_layouts; j++) { \ - char buf[256]; \ - av_get_channel_layout_string(buf, sizeof(buf), -1, \ - layouts->channel_layouts[j]); \ - printf(#INOUT "PUT[%d] %s: chlayout:%s\n", \ - i, avfilter_pad_get_name(filter_ctx->inout##put_pads, i), buf); \ - } \ + if (filter_ctx->inout##puts[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->nb_formats; j++) \ + if(av_get_pix_fmt_name(fmts->formats[j])) \ + printf(#INOUT "PUT[%d] %s: fmt:%s\n", \ + i, avfilter_pad_get_name(filter_ctx->inout##put_pads, i), \ + av_get_pix_fmt_name(fmts->formats[j])); \ + } else if (filter_ctx->inout##puts[i]->type == AVMEDIA_TYPE_AUDIO) { \ + AVFilterFormats *fmts; \ + AVFilterChannelLayouts *layouts; \ + \ + fmts = filter_ctx->inout##puts[i]->outin##_formats; \ + for (j = 0; j < fmts->nb_formats; j++) \ + printf(#INOUT "PUT[%d] %s: fmt:%s\n", \ + i, avfilter_pad_get_name(filter_ctx->inout##put_pads, i), \ + av_get_sample_fmt_name(fmts->formats[j])); \ + \ + layouts = filter_ctx->inout##puts[i]->outin##_channel_layouts; \ + for (j = 0; j < layouts->nb_channel_layouts; j++) { \ + char buf[256]; \ + av_get_channel_layout_string(buf, sizeof(buf), -1, \ + layouts->channel_layouts[j]); \ + printf(#INOUT "PUT[%d] %s: chlayout:%s\n", \ + i, avfilter_pad_get_name(filter_ctx->inout##put_pads, i), buf); \ + } \ + } \ } \ } \ @@ -115,11 +117,15 @@ int main(int argc, char **argv) /* create a link for each of the input pads */ for (i = 0; i < filter_ctx->nb_inputs; i++) { AVFilterLink *link = av_mallocz(sizeof(AVFilterLink)); + if (!link) + continue; link->type = avfilter_pad_get_type(filter_ctx->input_pads, i); filter_ctx->inputs[i] = link; } for (i = 0; i < filter_ctx->nb_outputs; i++) { AVFilterLink *link = av_mallocz(sizeof(AVFilterLink)); + if (!link) + continue; link->type = avfilter_pad_get_type(filter_ctx->output_pads, i); filter_ctx->outputs[i] = link; } -- 1.9.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel