#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
}
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;
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;