|
|
@ -583,6 +583,7 @@ static void *filter_child_next(void *obj, void *prev) |
|
|
|
return NULL; |
|
|
|
return NULL; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if FF_API_CHILD_CLASS_NEXT |
|
|
|
static const AVClass *filter_child_class_next(const AVClass *prev) |
|
|
|
static const AVClass *filter_child_class_next(const AVClass *prev) |
|
|
|
{ |
|
|
|
{ |
|
|
|
void *opaque = NULL; |
|
|
|
void *opaque = NULL; |
|
|
@ -604,6 +605,18 @@ static const AVClass *filter_child_class_next(const AVClass *prev) |
|
|
|
|
|
|
|
|
|
|
|
return NULL; |
|
|
|
return NULL; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static const AVClass *filter_child_class_iterate(void **iter) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
const AVFilter *f; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
while ((f = av_filter_iterate(iter))) |
|
|
|
|
|
|
|
if (f->priv_class) |
|
|
|
|
|
|
|
return f->priv_class; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return NULL; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#define OFFSET(x) offsetof(AVFilterContext, x) |
|
|
|
#define OFFSET(x) offsetof(AVFilterContext, x) |
|
|
|
#define FLAGS AV_OPT_FLAG_FILTERING_PARAM |
|
|
|
#define FLAGS AV_OPT_FLAG_FILTERING_PARAM |
|
|
@ -625,7 +638,10 @@ static const AVClass avfilter_class = { |
|
|
|
.version = LIBAVUTIL_VERSION_INT, |
|
|
|
.version = LIBAVUTIL_VERSION_INT, |
|
|
|
.category = AV_CLASS_CATEGORY_FILTER, |
|
|
|
.category = AV_CLASS_CATEGORY_FILTER, |
|
|
|
.child_next = filter_child_next, |
|
|
|
.child_next = filter_child_next, |
|
|
|
|
|
|
|
#if FF_API_CHILD_CLASS_NEXT |
|
|
|
.child_class_next = filter_child_class_next, |
|
|
|
.child_class_next = filter_child_class_next, |
|
|
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
.child_class_iterate = filter_child_class_iterate, |
|
|
|
.option = avfilter_options, |
|
|
|
.option = avfilter_options, |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|