diff options
author | Nicolas George <george@nsup.org> | 2020-04-16 21:36:00 +0200 |
---|---|---|
committer | Nicolas George <george@nsup.org> | 2020-05-23 15:51:44 +0200 |
commit | 6b65c4ec54511871f345cfa76a499fa65d94c0b8 (patch) | |
tree | 189dc349ae343acf78b1b05de630a0bfb200b545 /libavutil/rational.c | |
parent | beb98c0181b70c0d32cf19efe2a78d2c397b2508 (diff) | |
download | ffmpeg-6b65c4ec54511871f345cfa76a499fa65d94c0b8.tar.gz |
lavu: add av_gcd_q().
Diffstat (limited to 'libavutil/rational.c')
-rw-r--r-- | libavutil/rational.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libavutil/rational.c b/libavutil/rational.c index 35ee08877f..eb148ddb12 100644 --- a/libavutil/rational.c +++ b/libavutil/rational.c @@ -182,3 +182,12 @@ uint32_t av_q2intfloat(AVRational q) { return sign<<31 | (150-shift)<<23 | (n - (1<<23)); } + +AVRational av_gcd_q(AVRational a, AVRational b, int max_den, AVRational def) +{ + int64_t gcd, lcm; + + gcd = av_gcd(a.den, b.den); + lcm = (a.den / gcd) * b.den; + return lcm < max_den ? av_make_q(av_gcd(a.num, b.num), lcm) : def; +} |