diff options
author | Alexander Strasser <eclipse7@gmx.net> | 2005-08-01 20:07:05 +0000 |
---|---|---|
committer | Alexander Strasser <eclipse7@gmx.net> | 2005-08-01 20:07:05 +0000 |
commit | c11c2bc20b0d2ca85ac4aed937daf5d65316cf7b (patch) | |
tree | 7a668be611b0443382d380a55f4404d12ff44b9c /libavutil/mathematics.h | |
parent | 0cc64d3d1c9d95e0549b2c1baac59ab576837abb (diff) | |
download | ffmpeg-c11c2bc20b0d2ca85ac4aed937daf5d65316cf7b.tar.gz |
libavutil: Utility code from libavcodec moved to a separate library.
Originally committed as revision 4489 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavutil/mathematics.h')
-rw-r--r-- | libavutil/mathematics.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/libavutil/mathematics.h b/libavutil/mathematics.h new file mode 100644 index 0000000000..0cf726cbe9 --- /dev/null +++ b/libavutil/mathematics.h @@ -0,0 +1,31 @@ +#ifndef MATHEMATICS_H +#define MATHEMATICS_H + +#include "rational.h" + +enum AVRounding { + AV_ROUND_ZERO = 0, ///< round toward zero + AV_ROUND_INF = 1, ///< round away from zero + AV_ROUND_DOWN = 2, ///< round toward -infinity + AV_ROUND_UP = 3, ///< round toward +infinity + AV_ROUND_NEAR_INF = 5, ///< round to nearest and halfway cases away from zero +}; + +/** + * rescale a 64bit integer with rounding to nearest. + * a simple a*b/c isn't possible as it can overflow + */ +int64_t av_rescale(int64_t a, int64_t b, int64_t c); + +/** + * rescale a 64bit integer with specified rounding. + * a simple a*b/c isn't possible as it can overflow + */ +int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding); + +/** + * rescale a 64bit integer by 2 rational numbers. + */ +int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq); + +#endif /* MATHEMATICS_H */ |