summaryrefslogtreecommitdiff
path: root/libavcodec/options.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2020-05-27 15:34:07 +0200
committerAnton Khirnov <anton@khirnov.net>2020-06-10 12:36:44 +0200
commit851e0dfe296af1cb96dc5315547ef459cd85c598 (patch)
tree91e4bdafb8e5f8907a8092e8d4de073a012ccca8 /libavcodec/options.c
parentc0d6eaca50ad65fb8f45b02863d31b3421899959 (diff)
AVCodecContext: switch to child_class_iterate()
Diffstat (limited to 'libavcodec/options.c')
-rw-r--r--libavcodec/options.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/libavcodec/options.c b/libavcodec/options.c
index 7706a03297..ff16e2cbfd 100644
--- a/libavcodec/options.c
+++ b/libavcodec/options.c
@@ -53,6 +53,7 @@ static void *codec_child_next(void *obj, void *prev)
return NULL;
}
+#if FF_API_CHILD_CLASS_NEXT
static const AVClass *codec_child_class_next(const AVClass *prev)
{
void *iter = NULL;
@@ -69,6 +70,17 @@ static const AVClass *codec_child_class_next(const AVClass *prev)
return c->priv_class;
return NULL;
}
+#endif
+
+static const AVClass *codec_child_class_iterate(void **iter)
+{
+ const AVCodec *c;
+ /* find next codec with priv options */
+ while (c = av_codec_iterate(iter))
+ if (c->priv_class)
+ return c->priv_class;
+ return NULL;
+}
static AVClassCategory get_category(void *ptr)
{
@@ -84,7 +96,10 @@ static const AVClass av_codec_context_class = {
.version = LIBAVUTIL_VERSION_INT,
.log_level_offset_offset = offsetof(AVCodecContext, log_level_offset),
.child_next = codec_child_next,
+#if FF_API_CHILD_CLASS_NEXT
.child_class_next = codec_child_class_next,
+#endif
+ .child_class_iterate = codec_child_class_iterate,
.category = AV_CLASS_CATEGORY_ENCODER,
.get_category = get_category,
};