Lines Matching defs:intnum
59 static int read_number(const AVOption *o, const void *dst, double *num, int *den, int64_t *intnum)
63 *intnum = *(unsigned int*)dst;
66 *intnum = *(enum AVPixelFormat *)dst;
69 *intnum = *(enum AVSampleFormat *)dst;
73 *intnum = *(int *)dst;
83 *intnum = *(int64_t *)dst;
92 *intnum = ((AVRational *)dst)->num;
102 static int write_number(void *obj, const AVOption *o, void *dst, double num, int den, int64_t intnum)
105 (!den || o->max * den < num * intnum || o->min * den > num * intnum)) {
106 num = den ? num * intnum / den : (num && intnum ? INFINITY : NAN);
112 double d = num*intnum/den;
116 num*intnum/den, o->name);
123 *(enum AVPixelFormat *)dst = llrint(num / den) * intnum;
126 *(enum AVSampleFormat *)dst = llrint(num / den) * intnum;
131 *(int *)dst = llrint(num / den) * intnum;
141 if (intnum == 1 && d == (double)INT64_MAX) {
144 *(int64_t *)dst = llrint(d) * intnum;
152 if (intnum == 1 && d == (double)UINT64_MAX) {
155 *(uint64_t *)dst = (llrint(d - (INT64_MAX + 1ULL)) + (INT64_MAX + 1ULL))*intnum;
157 *(uint64_t *)dst = llrint(d) * intnum;
161 *(float *)dst = num * intnum / den;
164 *(double *)dst = num * intnum / den;
169 *(AVRational *)dst = (AVRational) { num *intnum, den };
171 *(AVRational *)dst = av_d2q(num * intnum / den, 1 << 24);
257 int64_t intnum = 1;
316 read_number(o, dst, NULL, NULL, &intnum);
318 d = intnum | (int64_t)d;
320 d = intnum &~(int64_t)d;
608 static int set_number(void *obj, const char *name, double num, int den, int64_t intnum,
621 return write_number(obj, o, dst, num, den, intnum);
958 static int get_number(void *obj, const char *name, const AVOption **o_out, double *num, int *den, int64_t *intnum,
970 return read_number(o, dst, num, den, intnum);
974 *intnum = 0;
980 int64_t intnum = 1;
984 if ((ret = get_number(obj, name, NULL, &num, &den, &intnum, search_flags)) < 0)
987 *out_val = intnum;
989 *out_val = num * intnum / den;
995 int64_t intnum = 1;
999 if ((ret = get_number(obj, name, NULL, &num, &den, &intnum, search_flags)) < 0)
1001 *out_val = num * intnum / den;
1007 int64_t intnum = 1;
1011 if ((ret = get_number(obj, name, NULL, &num, &den, &intnum, search_flags)) < 0)
1014 if (num == 1.0 && (int)intnum == intnum)
1015 *out_val = (AVRational){intnum, den};
1017 *out_val = av_d2q(num*intnum/den, 1<<24);
1041 int64_t intnum = 1;
1045 if ((ret = get_number(obj, name, NULL, &num, &den, &intnum, search_flags)) < 0)
1048 if (num == 1.0 && (int)intnum == intnum)
1049 *out_val = (AVRational) { intnum, den };
1051 *out_val = av_d2q(num * intnum / den, 1 << 24);