[FFmpeg-devel] [PATCH 3/6] avutil/common, macros: Move several macros from common.h to macros.h

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Fri Jul 23 20:04:25 EEST 2021


common.h currently contains several things: Math macros, UTF-8 macros,
other fundamental macros; furthermore it also contains miscellaneous
math functions and it (directly and indirectly) includes lots of other
headers.

This commit moves the "other fundamental macros" to macros.h which is
a more fitting place.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
I am unsure what to do with the other stuff in common.h: The math macros
and the misc math functions could maybe be offloaded into an intmath.h
header (with the current intmath.h being renamed to intmath_internal.h
or so and included in intmath.h like intmath.h is currently included in
common.h), but the problem is that there are also float functions among
them (intmath.h also contains optimized versions of these, so maybe this
is not a reason not to include such functions in a header of this name).

 doc/APIchanges      |  5 +++++
 libavutil/common.h  | 29 -----------------------------
 libavutil/macros.h  | 30 ++++++++++++++++++++++++++++++
 libavutil/version.h |  2 +-
 4 files changed, 36 insertions(+), 30 deletions(-)

diff --git a/doc/APIchanges b/doc/APIchanges
index 9506059ac0..cd1902179f 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -13,6 +13,11 @@ libavutil:     2021-04-27
 
 
 API changes, most recent first:
+
+2021-07-23 - xxxxxxxxxx - lavu 57.3.100 - common.h macros.h
+  Move several macros (AV_NE, FFDIFFSIGN, FFMAX, FFMAX3, FFMIN, FFMIN3,
+  FFSWAP, FF_ARRAY_ELEMS, MKTAG, MKBETAG) from common.h to macros.h.
+
 2021-07-22 - xxxxxxxxxx - lavu 57.2.100 - film_grain_params.h
   Add AV_FILM_GRAIN_PARAMS_H274, AVFilmGrainH274Params
 
diff --git a/libavutil/common.h b/libavutil/common.h
index aee353d399..3cc1f07566 100644
--- a/libavutil/common.h
+++ b/libavutil/common.h
@@ -42,13 +42,6 @@
 #include "attributes.h"
 #include "macros.h"
 #include "version.h"
-#include "libavutil/avconfig.h"
-
-#if AV_HAVE_BIGENDIAN
-#   define AV_NE(be, le) (be)
-#else
-#   define AV_NE(be, le) (le)
-#endif
 
 //rounded division & shift
 #define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b))
@@ -89,25 +82,6 @@
 #define FFABSU(a) ((a) <= 0 ? -(unsigned)(a) : (unsigned)(a))
 #define FFABS64U(a) ((a) <= 0 ? -(uint64_t)(a) : (uint64_t)(a))
 
-/**
- * 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 FFDIFFSIGN(x,y) (((x)>(y)) - ((x)<(y)))
-
-#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]))
-
 /* misc math functions */
 
 #ifdef HAVE_AV_CONFIG_H
@@ -475,9 +449,6 @@ static av_always_inline av_const int av_parity_c(uint32_t v)
     return av_popcount(v) & 1;
 }
 
-#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))
-
 /**
  * Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form.
  *
diff --git a/libavutil/macros.h b/libavutil/macros.h
index 2007ee5619..2a7567c3ea 100644
--- a/libavutil/macros.h
+++ b/libavutil/macros.h
@@ -25,6 +25,36 @@
 #ifndef AVUTIL_MACROS_H
 #define AVUTIL_MACROS_H
 
+#include "libavutil/avconfig.h"
+
+#if AV_HAVE_BIGENDIAN
+#   define AV_NE(be, le) (be)
+#else
+#   define AV_NE(be, le) (le)
+#endif
+
+/**
+ * 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 FFDIFFSIGN(x,y) (((x)>(y)) - ((x)<(y)))
+
+#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))
+
 /**
  * @addtogroup preproc_misc Preprocessor String Macros
  *
diff --git a/libavutil/version.h b/libavutil/version.h
index 77ca4becd6..6b4a265457 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -79,7 +79,7 @@
  */
 
 #define LIBAVUTIL_VERSION_MAJOR  57
-#define LIBAVUTIL_VERSION_MINOR   2
+#define LIBAVUTIL_VERSION_MINOR   3
 #define LIBAVUTIL_VERSION_MICRO 100
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
-- 
2.30.2



More information about the ffmpeg-devel mailing list