FFmpeg  4.0
Data Structures | Macros | Functions
integer.h File Reference

arbitrary precision integers More...

#include <stdint.h>
#include "common.h"

Go to the source code of this file.

Data Structures

struct  AVInteger
 

Macros

#define AV_INTEGER_SIZE   8
 

Functions

AVInteger av_add_i (AVInteger a, AVInteger b) av_const
 
AVInteger av_sub_i (AVInteger a, AVInteger b) av_const
 
int av_log2_i (AVInteger a) av_const
 Return the rounded-down value of the base 2 logarithm of the given AVInteger. More...
 
AVInteger av_mul_i (AVInteger a, AVInteger b) av_const
 
int av_cmp_i (AVInteger a, AVInteger b) av_const
 Return 0 if a==b, 1 if a>b and -1 if a<b. More...
 
AVInteger av_shr_i (AVInteger a, int s) av_const
 bitwise shift More...
 
AVInteger av_mod_i (AVInteger *quot, AVInteger a, AVInteger b)
 Return a % b. More...
 
AVInteger av_div_i (AVInteger a, AVInteger b) av_const
 Return a/b. More...
 
AVInteger av_int2i (int64_t a) av_const
 Convert the given int64_t to an AVInteger. More...
 
int64_t av_i2int (AVInteger a) av_const
 Convert the given AVInteger to an int64_t. More...
 

Detailed Description

arbitrary precision integers

Author
Michael Niedermayer micha.nosp@m.elni.nosp@m.@gmx..nosp@m.at

Definition in file integer.h.

Macro Definition Documentation

◆ AV_INTEGER_SIZE

#define AV_INTEGER_SIZE   8

Function Documentation

◆ av_add_i()

AVInteger av_add_i ( AVInteger  a,
AVInteger  b 
) const

Definition at line 34 of file integer.c.

Referenced by av_rescale_rnd(), and main().

◆ av_sub_i()

AVInteger av_sub_i ( AVInteger  a,
AVInteger  b 
) const

Definition at line 44 of file integer.c.

Referenced by av_mod_i(), and main().

◆ av_log2_i()

int av_log2_i ( AVInteger  a) const

Return the rounded-down value of the base 2 logarithm of the given AVInteger.

This is simply the index of the most significant bit which is 1, or 0 if all bits are 0.

Definition at line 54 of file integer.c.

Referenced by av_mod_i(), av_mul_i(), and main().

◆ av_mul_i()

AVInteger av_mul_i ( AVInteger  a,
AVInteger  b 
) const

Definition at line 64 of file integer.c.

Referenced by av_rescale_rnd(), and main().

◆ av_cmp_i()

int av_cmp_i ( AVInteger  a,
AVInteger  b 
) const

Return 0 if a==b, 1 if a>b and -1 if a<b.

Definition at line 85 of file integer.c.

Referenced by av_mod_i(), and main().

◆ av_shr_i()

AVInteger av_shr_i ( AVInteger  a,
int  s 
) const

bitwise shift

Parameters
sthe number of bits by which the value should be shifted right, may be negative for shifting left

Definition at line 97 of file integer.c.

Referenced by av_mod_i(), and main().

◆ av_mod_i()

AVInteger av_mod_i ( AVInteger quot,
AVInteger  a,
AVInteger  b 
)

Return a % b.

Parameters
quota/b will be stored here.

Definition at line 111 of file integer.c.

Referenced by av_div_i(), and av_mod_i().

◆ av_div_i()

AVInteger av_div_i ( AVInteger  a,
AVInteger  b 
) const

Return a/b.

Definition at line 141 of file integer.c.

Referenced by av_rescale_rnd(), and main().

◆ av_int2i()

AVInteger av_int2i ( int64_t  a) const

Convert the given int64_t to an AVInteger.

Definition at line 147 of file integer.c.

Referenced by av_rescale_rnd(), and main().

◆ av_i2int()

int64_t av_i2int ( AVInteger  a) const

Convert the given AVInteger to an int64_t.

If the AVInteger is too large to fit into an int64_t, then only the least significant 64 bits will be used.

Definition at line 158 of file integer.c.

Referenced by av_rescale_rnd(), and main().