Commit 8f853159 authored by Michael Niedermayer's avatar Michael Niedermayer

avutil/opt: preserve fractions in set_string_number()

This avoids going over a double precission float, which may loose precission
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 3e70c702
...@@ -195,6 +195,15 @@ static int set_string(void *obj, const AVOption *o, const char *val, uint8_t **d ...@@ -195,6 +195,15 @@ static int set_string(void *obj, const AVOption *o, const char *val, uint8_t **d
static int set_string_number(void *obj, void *target_obj, const AVOption *o, const char *val, void *dst) static int set_string_number(void *obj, void *target_obj, const AVOption *o, const char *val, void *dst)
{ {
int ret = 0, notfirst = 0; int ret = 0, notfirst = 0;
int num, den;
char c;
if (sscanf(val, "%d%*1[:/]%d%c", &num, &den, &c) == 2) {
if ((ret = write_number(obj, o, dst, 1, den, num)) >= 0)
return ret;
ret = 0;
}
for (;;) { for (;;) {
int i, den = 1; int i, den = 1;
char buf[256]; char buf[256];
......
#tb 0: 15967/1119068 #tb 0: 1000000/70086303
0, 0, 0, 1, 192000, 0x5234b617 0, 0, 0, 1, 192000, 0x5234b617
0, 1, 1, 1, 192000, 0x5234b617 0, 1, 1, 1, 192000, 0x5234b617
0, 2, 2, 1, 192000, 0x5234b617 0, 2, 2, 1, 192000, 0x5234b617
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment