On 26/10/13 10:37, Anton Khirnov wrote:
> It does not make sense in the vast majority of use cases, no currently
> defined AV_OPT_TYPE_FLAGS options in Libav set the range to anything
> nontrivial, and many of those get it wrong (the "correct" range is
> INT_MIN to INT_MAX so that the builtin constant "all" works).
> ---
>  libavutil/opt.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/libavutil/opt.c b/libavutil/opt.c
> index cba5b29..ef6a9de 100644
> --- a/libavutil/opt.c
> +++ b/libavutil/opt.c
> @@ -61,7 +61,8 @@ static int read_number(const AVOption *o, void *dst, double 
> *num, int *den, int6
>  
>  static int write_number(void *obj, const AVOption *o, void *dst, double num, 
> int den, int64_t intnum)
>  {
> -    if (o->max*den < num*intnum || o->min*den > num*intnum) {
> +    if (o->type != AV_OPT_TYPE_FLAGS &&
> +        (o->max*den < num*intnum || o->min*den > num*intnum)) {
>          av_log(obj, AV_LOG_ERROR, "Value %f for parameter '%s' out of 
> range\n",
>                 num*intnum/den, o->name);
>          return AVERROR(ERANGE);
> 

Ok, maybe with some spaces sprinkled while at it.

lu
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to