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

Reply via email to