On date Thursday 2011-06-09 12:27:53 +0200, Anton Khirnov encoded:
[...]
> diff --git a/libavutil/opt.h b/libavutil/opt.h
> index f16d989..0ad7628 100644
> --- a/libavutil/opt.h
> +++ b/libavutil/opt.h
> @@ -92,6 +92,7 @@ typedef struct AVOption {
> const char *unit;
> } AVOption;
>
> +#if FF_API_FIND_OPT
> /**
> * Look for an option in obj. Look only for the options which
> * have the flags set as specified in mask and flags (that is,
> @@ -103,8 +104,12 @@ typedef struct AVOption {
> * @param[in] unit the unit of the option to look for, or any if NULL
> * @return a pointer to the option found, or NULL if no option
> * has been found
> + *
> + * @deprecated use av_opt_find.
> */
> +attribute_deprecated
> const AVOption *av_find_opt(void *obj, const char *name, const char *unit,
> int mask, int flags);
> +#endif
>
> /**
> * Set the field of obj with the given name to value.
> @@ -194,4 +199,29 @@ void av_opt_free(void *obj);
> */
> int av_opt_apply_dict(void *obj, struct AVDictionary **options);
>
> +#define AVOPT_SEARCH_CHILDREN 0x0001 /**< Search also in possible children
> of the given object. */
Please also specify the order of search, that is if the options are
looked before in the parent or before in the children (or this could
be another flag).
Nit: AV_OPT_... like AV_OPT_FLAG_*, FF_OPT_TYPE_*
Maybe AV_OPT_FIND_FLAG_SEARCH_CHILDREN, longer but more
namespace-collision-free.
> +
> +/**
> + * Look for an option in obj. Look only for the options which
> + * have the specified flags set.
> + *
> + * @param[in] obj A pointer to a struct whose first element is a
> + * pointer to an AVClass.
> + * @param[in] name The name of the option to look for.
> + * @param[in] unit When searching for named constants, name of the unit
> + * it belongs to.
> + * @param opt_flags Find only options with those flags set (AV_OPT_FLAG).
> + * @param search_flags A combination of AVOPT_SEARCH_*.
> + *
> + * @return A pointer to the option found, or NULL if no option
> + * has been found.
> + *
> + * @note Options found with AVOPT_SEARCH_CHILDREN flag may not be
> + * settable directly with av_set_string3. Use special calls which
> + * take an options dict (e.g. avformat_open_input() ) to set options
> + * found with this flag.
Note: maybe av_set_string may be extended to make it look in the
children contexts.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel