X-Git-Url: https://cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fpluginfclient.C;h=afb88c7a6624c59eb526c4afeecec4ad06dd60a6;hb=c6c20a38b77598f0e9c7056c40dcd8ef4ee35df6;hp=d188eb39185814ca1419db7343b6a73abc6300b8;hpb=07a0e1f6f49dc7c4229a3a296b722a0571c17e81;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/pluginfclient.C b/cinelerra-5.1/cinelerra/pluginfclient.C index d188eb39..afb88c7a 100644 --- a/cinelerra-5.1/cinelerra/pluginfclient.C +++ b/cinelerra-5.1/cinelerra/pluginfclient.C @@ -37,6 +37,8 @@ #include "vframe.h" #include "filexml.h" +#include "libavfilter/version.h" + #ifdef FFMPEG3 #define av_filter_iterate(p) ((*(const AVFilter**)(p))=avfilter_next(*(const AVFilter **)(p))) #endif @@ -660,13 +662,22 @@ PluginFClient::~PluginFClient() } bool PluginFClient::is_audio(const AVFilter *fp) + { if( !fp->outputs ) return 0; +#if LIBAVFILTER_VERSION_MINOR > 2 + if( avfilter_filter_pad_count(fp, 1) > 1 ) return 0; +#else if( avfilter_pad_count(fp->outputs) > 1 ) return 0; +#endif if( !avfilter_pad_get_name(fp->outputs, 0) ) return 0; if( avfilter_pad_get_type(fp->outputs, 0) != AVMEDIA_TYPE_AUDIO ) return 0; if( !fp->inputs ) return 1; +#if LIBAVFILTER_VERSION_MINOR > 2 + if( avfilter_filter_pad_count(fp, 0) > 1 ) return 0; +#else if( avfilter_pad_count(fp->inputs) > 1 ) return 0; +#endif if( !avfilter_pad_get_name(fp->inputs, 0) ) return 0; if( avfilter_pad_get_type(fp->inputs, 0) != AVMEDIA_TYPE_AUDIO ) return 0; return 1; @@ -674,11 +685,19 @@ bool PluginFClient::is_audio(const AVFilter *fp) bool PluginFClient::is_video(const AVFilter *fp) { if( !fp->outputs ) return 0; +#if LIBAVFILTER_VERSION_MINOR > 2 + if( avfilter_filter_pad_count(fp, 1) > 1 ) return 0; +#else if( avfilter_pad_count(fp->outputs) > 1 ) return 0; +#endif if( !avfilter_pad_get_name(fp->outputs, 0) ) return 0; if( avfilter_pad_get_type(fp->outputs, 0) != AVMEDIA_TYPE_VIDEO ) return 0; if( !fp->inputs ) return 1; +#if LIBAVFILTER_VERSION_MINOR > 2 + if( avfilter_filter_pad_count(fp, 0) > 1 ) return 0; +#else if( avfilter_pad_count(fp->inputs) > 1 ) return 0; +#endif if( !avfilter_pad_get_name(fp->inputs, 0) ) return 0; if( avfilter_pad_get_type(fp->inputs, 0) != AVMEDIA_TYPE_VIDEO ) return 0; return 1;