diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index 05a0fea47eb722740a4ce771d4348168550b042b..5bd19b77198f1902c77cb50961d8d375e635f81d 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -354,6 +354,11 @@ int avfilter_register(AVFilter *filter)
     return 0;
 }
 
+AVFilter **av_filter_next(AVFilter **filter)
+{
+    return filter ? ++filter : &registered_avfilters[0];
+}
+
 void avfilter_uninit(void)
 {
     memset(registered_avfilters, 0, sizeof(registered_avfilters));
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index e2731336ccd3194cfcb3b65c29dea2b51622a5b0..f08f7b0a2979c0aafe77678ddc07fb058061c3ec 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -25,7 +25,7 @@
 #include "libavutil/avutil.h"
 
 #define LIBAVFILTER_VERSION_MAJOR  1
-#define LIBAVFILTER_VERSION_MINOR  9
+#define LIBAVFILTER_VERSION_MINOR 10
 #define LIBAVFILTER_VERSION_MICRO  0
 
 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
@@ -594,6 +594,14 @@ int avfilter_register(AVFilter *filter);
  */
 AVFilter *avfilter_get_by_name(const char *name);
 
+/**
+ * If filter is NULL, returns a pointer to the first registered filter pointer,
+ * if filter is non-NULL, returns the next pointer after filter.
+ * If the returned pointer points to NULL, the last registered filter
+ * was already reached.
+ */
+AVFilter **av_filter_next(AVFilter **filter);
+
 /**
  * Creates a filter instance.
  * @param filter    the filter to create an instance of