FFmpeg 5.1.6
Macros
macros.h File Reference

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. 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 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, demuxing_decoding.c, and resampling_audio.c.

Definition at line 33 of file macros.h.

◆ FFDIFFSIGN

#define FFDIFFSIGN (   x,
 
)    (((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,
 
)    ((a) > (b) ? (a) : (b))

Definition at line 47 of file macros.h.

◆ FFMAX3

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

Definition at line 48 of file macros.h.

◆ FFMIN

#define FFMIN (   a,
 
)    ((a) > (b) ? (b) : (a))
Examples
avio_reading.c, and transcode_aac.c.

Definition at line 49 of file macros.h.

◆ FFMIN3

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

Definition at line 50 of file macros.h.

◆ FFSWAP

#define FFSWAP (   type,
  a,
 
)    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, demuxing_decoding.c, qsvdec.c, and resampling_audio.c.

Definition at line 53 of file macros.h.

◆ MKTAG

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

Definition at line 55 of file macros.h.

◆ MKBETAG

#define MKBETAG (   a,
  b,
  c,
 
)    ((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,
 
)    (((x)+(a)-1)&~((a)-1))

Definition at line 78 of file macros.h.