Commit cdea54b4 authored by Stefano Sabatini's avatar Stefano Sabatini

lavu/parseutils: rework rational reduction logic in av_parse_ratio()

Avoid to divide num and den by gcd in case of a parsed expression, since
that is already done in av_d2q(), and force reduction in case of "a:b"
form, allowing to honour the max parameter.

The latter change is consistent with the a/b case, and with the
documentation.
parent 935ecfb0
...@@ -57,12 +57,8 @@ int av_parse_ratio(AVRational *q, const char *str, int max, ...@@ -57,12 +57,8 @@ int av_parse_ratio(AVRational *q, const char *str, int max,
if (ret < 0) if (ret < 0)
return ret; return ret;
*q = av_d2q(d, max); *q = av_d2q(d, max);
} } else {
av_reduce(&q->num, &q->den, q->num, q->den, max);
gcd = av_gcd(FFABS(q->num), FFABS(q->den));
if (gcd) {
q->num /= gcd;
q->den /= gcd;
} }
return 0; return 0;
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
#define LIBAVUTIL_VERSION_MAJOR 51 #define LIBAVUTIL_VERSION_MAJOR 51
#define LIBAVUTIL_VERSION_MINOR 76 #define LIBAVUTIL_VERSION_MINOR 76
#define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_MICRO 101
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
LIBAVUTIL_VERSION_MINOR, \ LIBAVUTIL_VERSION_MINOR, \
......
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