diff options
Diffstat (limited to 'contrib/ffmpeg/libavutil/rational.h')
-rw-r--r-- | contrib/ffmpeg/libavutil/rational.h | 51 |
1 files changed, 47 insertions, 4 deletions
diff --git a/contrib/ffmpeg/libavutil/rational.h b/contrib/ffmpeg/libavutil/rational.h index 43fc22114..63c0b150f 100644 --- a/contrib/ffmpeg/libavutil/rational.h +++ b/contrib/ffmpeg/libavutil/rational.h @@ -38,7 +38,10 @@ typedef struct AVRational{ } AVRational; /** - * returns 0 if a==b, 1 if a>b and -1 if a<b. + * Compare two rationals. + * @param a first rational + * @param b second rational + * @return 0 if a==b, 1 if a>b and -1 if a<b. */ static inline int av_cmp_q(AVRational a, AVRational b){ const int64_t tmp= a.num * (int64_t)b.den - b.num * (int64_t)a.den; @@ -48,24 +51,64 @@ static inline int av_cmp_q(AVRational a, AVRational b){ } /** - * converts the given AVRational to a double. + * Rational to double conversion. + * @param a rational to convert + * @return (double) a */ static inline double av_q2d(AVRational a){ return a.num / (double) a.den; } /** - * reduce a fraction. - * this is usefull for framerate calculations + * Reduce a fraction. + * This is useful for framerate calculations. + * @param dst_nom destination numerator + * @param dst_den destination denominator + * @param nom source numerator + * @param den source denominator * @param max the maximum allowed for dst_nom & dst_den * @return 1 if exact, 0 otherwise */ int av_reduce(int *dst_nom, int *dst_den, int64_t nom, int64_t den, int64_t max); +/** + * Multiplies two rationals. + * @param b first rational. + * @param c second rational. + * @return b*c. + */ AVRational av_mul_q(AVRational b, AVRational c); + +/** + * Divides one rational by another. + * @param b first rational. + * @param c second rational. + * @return b/c. + */ AVRational av_div_q(AVRational b, AVRational c); + +/** + * Adds two rationals. + * @param b first rational. + * @param c second rational. + * @return b+c. + */ AVRational av_add_q(AVRational b, AVRational c); + +/** + * Subtracts one rational from another. + * @param b first rational. + * @param c second rational. + * returns b-c. + */ AVRational av_sub_q(AVRational b, AVRational c); + +/** + * Converts a double precision floating point number to a rational. + * @param d double to convert + * @param max the maximum allowed numerator and denominator + * @return (AVRational) d. + */ AVRational av_d2q(double d, int max); #endif // RATIONAL_H |