Loading...
Searching...
No Matches
macros.h File Reference
libavutil

Utility Preprocessor macros. More...

`#include "libavutil/avconfig.h"`

Go to the source code of this file.

## Macros

#define | AV_NE(be, le) (le)
#define | FFDIFFSIGN(x, y) (((x)>(y)) - ((x)<(y)))
| Comparator.
#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 | 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 | AV_STRINGIFY(s) AV_TOSTRING(s)
#define | AV_TOSTRING(s) #s
#define | AV_GLUE(a, b) a ## b
#define | AV_JOIN(a, b) AV_GLUE(a, b)
#define | AV_PRAGMA(s) _Pragma(#s)
#define | FFALIGN(x, a) (((x)+(a)-1)&~((a)-1))

## Detailed Description

Utility Preprocessor macros.

Definition in file macros.h.

## Macro Definition Documentation

## AV_NE

#define AV_NE | ( |  | be,
|  |  | le
| ) |  | (le)

Examples
  decode_audio.c, demux_decode.c, and resample_audio.c.

Definition at line 33 of file macros.h.

## FFDIFFSIGN

#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.

Definition at line 45 of file macros.h.

## FFMAX

#define FFMAX | ( |  | a,
|  |  | b
| ) |  | ((a) > (b) ? (a) : (b))

Definition at line 47 of file macros.h.

## FFMAX3

#define FFMAX3 | ( |  | a,
|  |  | b,
|  |  | c
| ) |  | FFMAX(FFMAX(a,b),c)

Definition at line 48 of file macros.h.

## FFMIN

#define FFMIN | ( |  | a,
|  |  | b
| ) |  | ((a) > (b) ? (b) : (a))

Examples
  avio_read_callback.c, and transcode_aac.c.

Definition at line 49 of file macros.h.

## FFMIN3

#define FFMIN3 | ( |  | a,
|  |  | b,
|  |  | c
| ) |  | FFMIN(FFMIN(a,b),c)

Definition at line 50 of file macros.h.

## FFSWAP

#define FFSWAP | ( |  | type,
|  |  | a,
|  |  | b
| ) |  | do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0)

Definition at line 52 of file macros.h.

## FF_ARRAY_ELEMS

#define FF_ARRAY_ELEMS | ( |  | a | ) | (sizeof(a) / sizeof((a)[0]))

Examples
  decode_audio.c, demux_decode.c, qsv_decode.c, and resample_audio.c.

Definition at line 53 of file macros.h.

## MKTAG

#define MKTAG | ( |  | a,
|  |  | b,
|  |  | c,
|  |  | d
| ) |  | ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24))

Definition at line 55 of file macros.h.

## MKBETAG

#define MKBETAG | ( |  | a,
|  |  | b,
|  |  | c,
|  |  | d
| ) |  | ((d) | ((c) << 8) | ((b) << 16) | ((unsigned)(a) << 24))

Definition at line 56 of file macros.h.

## AV_PRAGMA

#define AV_PRAGMA | ( |  | s | ) | _Pragma(#s)

Definition at line 76 of file macros.h.

## FFALIGN

#define FFALIGN | ( |  | x,
|  |  | a
| ) |  | (((x)+(a)-1)&~((a)-1))

Definition at line 78 of file macros.h.