FFmpeg
4.4.5
|
common internal and external API header More...
#include <errno.h>
#include <inttypes.h>
#include <limits.h>
#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "attributes.h"
#include "macros.h"
#include "version.h"
#include "libavutil/avconfig.h"
#include "mem.h"
Go to the source code of this file.
Macros | |
#define | AV_NE(be, le) (le) |
#define | RSHIFT(a, b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b)) |
#define | ROUNDED_DIV(a, b) (((a)>=0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b)) |
#define | AV_CEIL_RSHIFT(a, b) |
#define | FF_CEIL_RSHIFT AV_CEIL_RSHIFT |
#define | FFUDIV(a, b) (((a)>0 ?(a):(a)-(b)+1) / (b)) |
#define | FFUMOD(a, b) ((a)-(b)*FFUDIV(a,b)) |
#define | FFABS(a) ((a) >= 0 ? (a) : (-(a))) |
Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as they are not representable as absolute values of their type. More... | |
#define | FFSIGN(a) ((a) > 0 ? 1 : -1) |
#define | FFNABS(a) ((a) <= 0 ? (a) : (-(a))) |
Negative Absolute value. More... | |
#define | FFABSU(a) ((a) <= 0 ? -(unsigned)(a) : (unsigned)(a)) |
Unsigned Absolute value. More... | |
#define | FFABS64U(a) ((a) <= 0 ? -(uint64_t)(a) : (uint64_t)(a)) |
#define | FFDIFFSIGN(x, y) (((x)>(y)) - ((x)<(y))) |
Comparator. More... | |
#define | FFMAX(a, b) ((a) > (b) ? (a) : (b)) |
#define | FFMAX3(a, b, c) FFMAX(FFMAX(a,b),c) |
#define | FFMIN(a, b) ((a) > (b) ? (b) : (a)) |
#define | FFMIN3(a, b, c) FFMIN(FFMIN(a,b),c) |
#define | FFSWAP(type, a, b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0) |
#define | FF_ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0])) |
#define | av_ceil_log2 av_ceil_log2_c |
#define | av_clip av_clip_c |
#define | av_clip64 av_clip64_c |
#define | av_clip_uint8 av_clip_uint8_c |
#define | av_clip_int8 av_clip_int8_c |
#define | av_clip_uint16 av_clip_uint16_c |
#define | av_clip_int16 av_clip_int16_c |
#define | av_clipl_int32 av_clipl_int32_c |
#define | av_clip_intp2 av_clip_intp2_c |
#define | av_clip_uintp2 av_clip_uintp2_c |
#define | av_mod_uintp2 av_mod_uintp2_c |
#define | av_sat_add32 av_sat_add32_c |
#define | av_sat_dadd32 av_sat_dadd32_c |
#define | av_sat_sub32 av_sat_sub32_c |
#define | av_sat_dsub32 av_sat_dsub32_c |
#define | av_sat_add64 av_sat_add64_c |
#define | av_sat_sub64 av_sat_sub64_c |
#define | av_clipf av_clipf_c |
#define | av_clipd av_clipd_c |
#define | av_popcount av_popcount_c |
#define | av_popcount64 av_popcount64_c |
#define | av_parity av_parity_c |
#define | MKTAG(a, b, c, d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24)) |
#define | MKBETAG(a, b, c, d) ((d) | ((c) << 8) | ((b) << 16) | ((unsigned)(a) << 24)) |
#define | GET_UTF8(val, GET_BYTE, ERROR) |
Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form. More... | |
#define | GET_UTF16(val, GET_16BIT, ERROR) |
Convert a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form. More... | |
#define | PUT_UTF8(val, tmp, PUT_BYTE) |
Convert a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long). More... | |
#define | PUT_UTF16(val, tmp, PUT_16BIT) |
Convert a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes). More... | |
Functions | |
av_const int | av_log2 (unsigned v) |
av_const int | av_log2_16bit (unsigned v) |
static av_always_inline av_const int | av_clip_c (int a, int amin, int amax) |
Clip a signed integer value into the amin-amax range. More... | |
static av_always_inline av_const int64_t | av_clip64_c (int64_t a, int64_t amin, int64_t amax) |
Clip a signed 64bit integer value into the amin-amax range. More... | |
static av_always_inline av_const uint8_t | av_clip_uint8_c (int a) |
Clip a signed integer value into the 0-255 range. More... | |
static av_always_inline av_const int8_t | av_clip_int8_c (int a) |
Clip a signed integer value into the -128,127 range. More... | |
static av_always_inline av_const uint16_t | av_clip_uint16_c (int a) |
Clip a signed integer value into the 0-65535 range. More... | |
static av_always_inline av_const int16_t | av_clip_int16_c (int a) |
Clip a signed integer value into the -32768,32767 range. More... | |
static av_always_inline av_const int32_t | av_clipl_int32_c (int64_t a) |
Clip a signed 64-bit integer value into the -2147483648,2147483647 range. More... | |
static av_always_inline av_const int | av_clip_intp2_c (int a, int p) |
Clip a signed integer into the -(2^p),(2^p-1) range. More... | |
static av_always_inline av_const unsigned | av_clip_uintp2_c (int a, int p) |
Clip a signed integer to an unsigned power of two range. More... | |
static av_always_inline av_const unsigned | av_mod_uintp2_c (unsigned a, unsigned p) |
Clear high bits from an unsigned integer starting with specific bit position. More... | |
static av_always_inline int | av_sat_add32_c (int a, int b) |
Add two signed 32-bit values with saturation. More... | |
static av_always_inline int | av_sat_dadd32_c (int a, int b) |
Add a doubled value to another value with saturation at both stages. More... | |
static av_always_inline int | av_sat_sub32_c (int a, int b) |
Subtract two signed 32-bit values with saturation. More... | |
static av_always_inline int | av_sat_dsub32_c (int a, int b) |
Subtract a doubled value from another value with saturation at both stages. More... | |
static av_always_inline int64_t | av_sat_add64_c (int64_t a, int64_t b) |
Add two signed 64-bit values with saturation. More... | |
static av_always_inline int64_t | av_sat_sub64_c (int64_t a, int64_t b) |
Subtract two signed 64-bit values with saturation. More... | |
static av_always_inline av_const float | av_clipf_c (float a, float amin, float amax) |
Clip a float value into the amin-amax range. More... | |
static av_always_inline av_const double | av_clipd_c (double a, double amin, double amax) |
Clip a double value into the amin-amax range. More... | |
static av_always_inline av_const int | av_ceil_log2_c (int x) |
Compute ceil(log2(x)). More... | |
static av_always_inline av_const int | av_popcount_c (uint32_t x) |
Count number of bits set to one in x. More... | |
static av_always_inline av_const int | av_popcount64_c (uint64_t x) |
Count number of bits set to one in x. More... | |
static av_always_inline av_const int | av_parity_c (uint32_t v) |
common internal and external API header
Definition in file common.h.
#define AV_NE | ( | be, | |
le | |||
) | (le) |
#define FF_CEIL_RSHIFT AV_CEIL_RSHIFT |
#define FFDIFFSIGN | ( | x, | |
y | |||
) | (((x)>(y)) - ((x)<(y))) |
Comparator.
For two numerical expressions x and y, gives 1 if x > y, -1 if x < y, and 0 if x == y. This is useful for instance in a qsort comparator callback. Furthermore, compilers are able to optimize this to branchless code, and there is no risk of overflow with signed types. As with many macros, this evaluates its argument multiple times, it thus must not have a side-effect.
#define av_ceil_log2 av_ceil_log2_c |
#define av_clip64 av_clip64_c |
#define av_clip_uint8 av_clip_uint8_c |
#define av_clip_int8 av_clip_int8_c |
#define av_clip_uint16 av_clip_uint16_c |
#define av_clip_int16 av_clip_int16_c |
#define av_clipl_int32 av_clipl_int32_c |
#define av_clip_intp2 av_clip_intp2_c |
#define av_clip_uintp2 av_clip_uintp2_c |
#define av_mod_uintp2 av_mod_uintp2_c |
#define av_sat_add32 av_sat_add32_c |
#define av_sat_dadd32 av_sat_dadd32_c |
#define av_sat_sub32 av_sat_sub32_c |
#define av_sat_dsub32 av_sat_dsub32_c |
#define av_sat_add64 av_sat_add64_c |
#define av_sat_sub64 av_sat_sub64_c |
#define av_clipf av_clipf_c |
#define av_clipd av_clipd_c |
#define av_popcount av_popcount_c |
#define av_popcount64 av_popcount64_c |
#define av_parity av_parity_c |
Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form.
val | Output value, must be an lvalue of type uint32_t. |
GET_BYTE | Expression reading one byte from the input. Evaluated up to 7 times (4 for the currently assigned Unicode range). With a memory buffer input, this could be *ptr++, or if you want to make sure that *ptr stops at the end of a NULL terminated string then *ptr ? *ptr++ : 0 |
ERROR | Expression to be evaluated on invalid input, typically a goto statement. |
Convert a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form.
val | Output value, must be an lvalue of type uint32_t. |
GET_16BIT | Expression returning two bytes of UTF-16 data converted to native byte order. Evaluated one or two times. |
ERROR | Expression to be evaluated on invalid input, typically a goto statement. |
Convert a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long).
val | is an input-only argument and should be of type uint32_t. It holds a UCS-4 encoded Unicode character that is to be converted to UTF-8. If val is given as a function it is executed only once. |
tmp | is a temporary variable and should be of type uint8_t. It represents an intermediate value during conversion that is to be output by PUT_BYTE. |
PUT_BYTE | writes the converted UTF-8 bytes to any proper destination. It could be a function or a statement, and uses tmp as the input byte. For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be executed up to 4 times for values in the valid UTF-8 range and up to 7 times in the general case, depending on the length of the converted Unicode character. |
Convert a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes).
val | is an input-only argument and should be of type uint32_t. It holds a UCS-4 encoded Unicode character that is to be converted to UTF-16. If val is given as a function it is executed only once. |
tmp | is a temporary variable and should be of type uint16_t. It represents an intermediate value during conversion that is to be output by PUT_16BIT. |
PUT_16BIT | writes the converted UTF-16 data to any proper destination in desired endianness. It could be a function or a statement, and uses tmp as the input byte. For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be executed 1 or 2 times depending on input character. |
Definition at line 26 of file intmath.c.
Referenced by av_ceil_log2_c().
|
static |
|
static |
|
static |
Clip a signed integer value into the 0-65535 range.
a | value to clip |
Definition at line 254 of file common.h.
Referenced by dng_process_color16().
|
static |
|
static |
|
static |
|
static |
Clip a signed integer to an unsigned power of two range.
a | value to clip |
p | bit position to clip at |
Definition at line 302 of file common.h.
Referenced by amplify_frame(), cas_slice16(), color_balance16(), color_balance16_p(), colorcontrast_slice16(), colorcontrast_slice16p(), colorcorrect_slice16(), do_output16(), export_row16(), filter(), lerp16(), monochrome_slice16(), normalize(), parse_band_ext(), postprocess_chroma(), temperature_slice16(), temperature_slice16p(), vibrance_slice16(), vibrance_slice16p(), and write_words().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Compute ceil(log2(x)).
x | value used to compute ceil(log2(x)) |
Definition at line 444 of file common.h.
Referenced by config_input(), and hevc_parse_slice_header().
|
static |
|
static |
|
static |