diff mbox series

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

Message ID AM7PR03MB666012DDCC8AA02373EE6E2E8FE59@AM7PR03MB6660.eurprd03.prod.outlook.com
State Accepted
Commit 2dd8acbe800f6ea3b72ebe730f8ed95a5c3dd407
Headers show
Series [FFmpeg-devel,1/6] avformat/aviobuf: Make ff_read_line_to_bprint() static
Related show

Checks

Context Check Description
andriy/x86_make success Make finished
andriy/x86_make_fate success Make fate finished
andriy/PPC64_make success Make finished
andriy/PPC64_make_fate success Make fate finished

Commit Message

Andreas Rheinhardt July 23, 2021, 5:04 p.m. UTC
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@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 mbox series

Patch

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, \