avopts: Fix random values being printed in error messages:
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 20 Nov 2011 13:44:41 +0000 (14:44 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sun, 20 Nov 2011 14:02:36 +0000 (15:02 +0100)
Bug introduced in:
commit 7bb1807c2dd9623842f1c6d454e7f2892b5bc8d7
Author: Anton Khirnov <anton@khirnov.net>
Date:   Tue Aug 23 12:58:49 2011 +0200

    AVOptions: refactor set_number/write_number

    write_number() does the actual writing of the supplied
    number to destination. Move finding the option and choosing destination
    address out of it.

libavutil/opt.c

index ca31be3..1d7ef38 100644 (file)
@@ -80,7 +80,7 @@ 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) {
-        av_log(obj, AV_LOG_ERROR, "Value %lf for parameter '%s' out of range\n", num, o->name);
+        av_log(obj, AV_LOG_ERROR, "Value %f for parameter '%s' out of range\n", num*intnum/den, o->name);
         return AVERROR(ERANGE);
     }