lavu: add av_gcd_q().

This commit is contained in:
Nicolas George
2020-04-16 21:36:00 +02:00
parent beb98c0181
commit 6b65c4ec54
4 changed files with 20 additions and 2 deletions

View File

@@ -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;
}