Mercurial > libavutil.hg
comparison rational.h @ 633:8c48a1b999a3 libavutil
spelling/grammar/consistency review part I
author | diego |
---|---|
date | Wed, 28 Jan 2009 00:16:05 +0000 |
parents | 1f4b70bcd610 |
children | 41e4544b228b |
comparison
equal
deleted
inserted
replaced
632:f9884e1112d0 | 633:8c48a1b999a3 |
---|---|
1 /* | 1 /* |
2 * Rational numbers | 2 * rational numbers |
3 * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at> | 3 * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at> |
4 * | 4 * |
5 * This file is part of FFmpeg. | 5 * This file is part of FFmpeg. |
6 * | 6 * |
7 * FFmpeg is free software; you can redistribute it and/or | 7 * FFmpeg is free software; you can redistribute it and/or |
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
20 */ | 20 */ |
21 | 21 |
22 /** | 22 /** |
23 * @file rational.h | 23 * @file rational.h |
24 * Rational numbers. | 24 * rational numbers |
25 * @author Michael Niedermayer <michaelni@gmx.at> | 25 * @author Michael Niedermayer <michaelni@gmx.at> |
26 */ | 26 */ |
27 | 27 |
28 #ifndef AVUTIL_RATIONAL_H | 28 #ifndef AVUTIL_RATIONAL_H |
29 #define AVUTIL_RATIONAL_H | 29 #define AVUTIL_RATIONAL_H |
30 | 30 |
31 #include <stdint.h> | 31 #include <stdint.h> |
32 #include "common.h" | 32 #include "common.h" |
33 | 33 |
34 /** | 34 /** |
35 * Rational number num/den. | 35 * rational number numerator/denominator |
36 */ | 36 */ |
37 typedef struct AVRational{ | 37 typedef struct AVRational{ |
38 int num; ///< numerator | 38 int num; ///< numerator |
39 int den; ///< denominator | 39 int den; ///< denominator |
40 } AVRational; | 40 } AVRational; |
41 | 41 |
42 /** | 42 /** |
43 * Compare two rationals. | 43 * Compares two rationals. |
44 * @param a first rational | 44 * @param a first rational |
45 * @param b second rational | 45 * @param b second rational |
46 * @return 0 if a==b, 1 if a>b and -1 if a<b. | 46 * @return 0 if a==b, 1 if a>b and -1 if a<b |
47 */ | 47 */ |
48 static inline int av_cmp_q(AVRational a, AVRational b){ | 48 static inline int av_cmp_q(AVRational a, AVRational b){ |
49 const int64_t tmp= a.num * (int64_t)b.den - b.num * (int64_t)a.den; | 49 const int64_t tmp= a.num * (int64_t)b.den - b.num * (int64_t)a.den; |
50 | 50 |
51 if(tmp) return (tmp>>63)|1; | 51 if(tmp) return (tmp>>63)|1; |
52 else return 0; | 52 else return 0; |
53 } | 53 } |
54 | 54 |
55 /** | 55 /** |
56 * Rational to double conversion. | 56 * Converts rational to double. |
57 * @param a rational to convert | 57 * @param a rational to convert |
58 * @return (double) a | 58 * @return (double) a |
59 */ | 59 */ |
60 static inline double av_q2d(AVRational a){ | 60 static inline double av_q2d(AVRational a){ |
61 return a.num / (double) a.den; | 61 return a.num / (double) a.den; |
62 } | 62 } |
63 | 63 |
64 /** | 64 /** |
65 * Reduce a fraction. | 65 * Reduces a fraction. |
66 * This is useful for framerate calculations. | 66 * This is useful for framerate calculations. |
67 * @param dst_nom destination numerator | 67 * @param dst_nom destination numerator |
68 * @param dst_den destination denominator | 68 * @param dst_den destination denominator |
69 * @param nom source numerator | 69 * @param nom source numerator |
70 * @param den source denominator | 70 * @param den source denominator |
73 */ | 73 */ |
74 int av_reduce(int *dst_nom, int *dst_den, int64_t nom, int64_t den, int64_t max); | 74 int av_reduce(int *dst_nom, int *dst_den, int64_t nom, int64_t den, int64_t max); |
75 | 75 |
76 /** | 76 /** |
77 * Multiplies two rationals. | 77 * Multiplies two rationals. |
78 * @param b first rational. | 78 * @param b first rational |
79 * @param c second rational. | 79 * @param c second rational |
80 * @return b*c. | 80 * @return b*c |
81 */ | 81 */ |
82 AVRational av_mul_q(AVRational b, AVRational c) av_const; | 82 AVRational av_mul_q(AVRational b, AVRational c) av_const; |
83 | 83 |
84 /** | 84 /** |
85 * Divides one rational by another. | 85 * Divides one rational by another. |
86 * @param b first rational. | 86 * @param b first rational |
87 * @param c second rational. | 87 * @param c second rational |
88 * @return b/c. | 88 * @return b/c |
89 */ | 89 */ |
90 AVRational av_div_q(AVRational b, AVRational c) av_const; | 90 AVRational av_div_q(AVRational b, AVRational c) av_const; |
91 | 91 |
92 /** | 92 /** |
93 * Adds two rationals. | 93 * Adds two rationals. |
94 * @param b first rational. | 94 * @param b first rational |
95 * @param c second rational. | 95 * @param c second rational |
96 * @return b+c. | 96 * @return b+c |
97 */ | 97 */ |
98 AVRational av_add_q(AVRational b, AVRational c) av_const; | 98 AVRational av_add_q(AVRational b, AVRational c) av_const; |
99 | 99 |
100 /** | 100 /** |
101 * Subtracts one rational from another. | 101 * Subtracts one rational from another. |
102 * @param b first rational. | 102 * @param b first rational |
103 * @param c second rational. | 103 * @param c second rational |
104 * @return b-c. | 104 * @return b-c |
105 */ | 105 */ |
106 AVRational av_sub_q(AVRational b, AVRational c) av_const; | 106 AVRational av_sub_q(AVRational b, AVRational c) av_const; |
107 | 107 |
108 /** | 108 /** |
109 * Converts a double precision floating point number to a rational. | 109 * Converts a double precision floating point number to a rational. |
110 * @param d double to convert | 110 * @param d double to convert |
111 * @param max the maximum allowed numerator and denominator | 111 * @param max the maximum allowed numerator and denominator |
112 * @return (AVRational) d. | 112 * @return (AVRational) d |
113 */ | 113 */ |
114 AVRational av_d2q(double d, int max) av_const; | 114 AVRational av_d2q(double d, int max) av_const; |
115 | 115 |
116 /** | 116 /** |
117 * @return 1 if \q1 is nearer to \p q than \p q2, -1 if \p q2 is nearer | 117 * @return 1 if \q1 is nearer to \p q than \p q2, -1 if \p q2 is nearer |