lavu/opt: deprecate av_opt_ptr()

It has no more internal callers, and we do not want to support direct
pointer access via AVOptions, as that constrains AVOption API
extensions.
This commit is contained in:
Anton Khirnov 2024-10-13 13:18:55 +02:00
parent 86460a0342
commit 31b5b3badc
3 changed files with 8 additions and 0 deletions

View File

@ -2046,6 +2046,7 @@ const AVClass *av_opt_child_class_iterate(const AVClass *parent, void **iter)
return NULL; return NULL;
} }
#if FF_API_OPT_PTR
void *av_opt_ptr(const AVClass *class, void *obj, const char *name) void *av_opt_ptr(const AVClass *class, void *obj, const char *name)
{ {
const AVOption *opt= av_opt_find2(&class, name, NULL, 0, AV_OPT_SEARCH_FAKE_OBJ, NULL); const AVOption *opt= av_opt_find2(&class, name, NULL, 0, AV_OPT_SEARCH_FAKE_OBJ, NULL);
@ -2055,6 +2056,7 @@ void *av_opt_ptr(const AVClass *class, void *obj, const char *name)
return NULL; return NULL;
return (uint8_t*)obj + opt->offset; return (uint8_t*)obj + opt->offset;
} }
#endif
static int opt_copy_elem(void *logctx, enum AVOptionType type, static int opt_copy_elem(void *logctx, enum AVOptionType type,
void *dst, const void *src) void *dst, const void *src)

View File

@ -1071,6 +1071,7 @@ int av_opt_eval_q (void *obj, const AVOption *o, const char *val, AVRational
* @} * @}
*/ */
#if FF_API_OPT_PTR
/** /**
* Gets a pointer to the requested field in a struct. * Gets a pointer to the requested field in a struct.
* This function allows accessing a struct even when its fields are moved or * This function allows accessing a struct even when its fields are moved or
@ -1078,8 +1079,12 @@ int av_opt_eval_q (void *obj, const AVOption *o, const char *val, AVRational
* *
* @returns a pointer to the field, it can be cast to the correct type and read * @returns a pointer to the field, it can be cast to the correct type and read
* or written to. * or written to.
*
* @deprecated direct access to AVOption-exported fields is not supported
*/ */
attribute_deprecated
void *av_opt_ptr(const AVClass *avclass, void *obj, const char *name); void *av_opt_ptr(const AVClass *avclass, void *obj, const char *name);
#endif
/** /**
* Check if given option is set to its default value. * Check if given option is set to its default value.

View File

@ -116,6 +116,7 @@
#define FF_API_RISCV_FD_ZBA (LIBAVUTIL_VERSION_MAJOR < 60) #define FF_API_RISCV_FD_ZBA (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_VULKAN_FIXED_QUEUES (LIBAVUTIL_VERSION_MAJOR < 60) #define FF_API_VULKAN_FIXED_QUEUES (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_OPT_INT_LIST (LIBAVUTIL_VERSION_MAJOR < 60) #define FF_API_OPT_INT_LIST (LIBAVUTIL_VERSION_MAJOR < 60)
#define FF_API_OPT_PTR (LIBAVUTIL_VERSION_MAJOR < 60)
/** /**
* @} * @}