FFmpeg
Data Structures | Macros | Functions
integer.h File Reference
#include <stdint.h>
#include "attributes.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

Definition at line 34 of file integer.h.

Function Documentation

◆ av_add_i()

AVInteger av_add_i ( AVInteger  a,
AVInteger  b 
) const

Definition at line 36 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 46 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 56 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 66 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 87 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 99 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 113 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 143 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 149 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 160 of file integer.c.

Referenced by av_rescale_rnd(), and main().