summaryrefslogtreecommitdiff
path: root/contrib/ffmpeg/libavutil/integer.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ffmpeg/libavutil/integer.h')
-rw-r--r--contrib/ffmpeg/libavutil/integer.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/contrib/ffmpeg/libavutil/integer.h b/contrib/ffmpeg/libavutil/integer.h
index a50ad9bae..2a4d70316 100644
--- a/contrib/ffmpeg/libavutil/integer.h
+++ b/contrib/ffmpeg/libavutil/integer.h
@@ -37,13 +37,46 @@ typedef struct AVInteger{
AVInteger av_add_i(AVInteger a, AVInteger b);
AVInteger av_sub_i(AVInteger a, AVInteger b);
+
+/**
+ * returns the rounded down value of the logarithm of base 2 of the given AVInteger.
+ * this is simply the index of the most significant bit which is 1. Or 0 of all bits are 0
+ */
int av_log2_i(AVInteger a);
AVInteger av_mul_i(AVInteger a, AVInteger b);
+
+/**
+ * returns 0 if a==b, 1 if a>b and -1 if a<b.
+ */
int av_cmp_i(AVInteger a, AVInteger b);
+
+/**
+ * bitwise shift.
+ * @param s the number of bits by which the value should be shifted right, may be negative for shifting left
+ */
AVInteger av_shr_i(AVInteger a, int s);
+
+/**
+ * returns a % b.
+ * @param quot a/b will be stored here
+ */
AVInteger av_mod_i(AVInteger *quot, AVInteger a, AVInteger b);
+
+/**
+ * returns a/b.
+ */
AVInteger av_div_i(AVInteger a, AVInteger b);
+
+/**
+ * converts the given int64_t to an AVInteger.
+ */
AVInteger av_int2i(int64_t a);
+
+/**
+ * converts the given AVInteger to an int64_t.
+ * if the AVInteger is too large to fit into an int64_t,
+ * then only the least significant 64bit will be used
+ */
int64_t av_i2int(AVInteger a);
#endif // INTEGER_H