[FFmpeg-devel] [PATCH 1/5] avutil/rational: add av_abs_q

Niklas Haas ffmpeg at haasn.xyz
Wed Sep 27 13:03:52 EEST 2023


From: Niklas Haas <git at haasn.dev>

Seems like an obvious utility function to be missing, and useful in at
least several places in the code.
---
 doc/APIchanges       |  3 +++
 libavutil/rational.h | 12 ++++++++++++
 libavutil/version.h  |  2 +-
 3 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/doc/APIchanges b/doc/APIchanges
index f333ff5b24f..2219e32ddc1 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -2,6 +2,9 @@ The last version increases of all libraries were on 2023-02-09
 
 API changes, most recent first:
 
+2023-09-27 - xxxxxxxxxx - lavu 58.26.100 - rational.h
+  Add av_abs_q()
+
 2023-09-19 - xxxxxxxxxx - lavu 58.25.100 - avutil.h
   Make AV_TIME_BASE_Q compatible with C++.
 
diff --git a/libavutil/rational.h b/libavutil/rational.h
index 8cbfc8e0669..7b559ce515d 100644
--- a/libavutil/rational.h
+++ b/libavutil/rational.h
@@ -162,6 +162,18 @@ static av_always_inline AVRational av_inv_q(AVRational q)
     return r;
 }
 
+/**
+ * Take the absolute value of a rational.
+ * @param q value
+ * @return abs(q)
+ */
+static av_always_inline AVRational av_abs_q(AVRational q)
+{
+    if (q.num < 0)
+        q.num = -q.num;
+    return q;
+}
+
 /**
  * Convert a double precision floating point number to a rational.
  *
diff --git a/libavutil/version.h b/libavutil/version.h
index 00f229d2335..2dc1a647b8f 100644
--- a/libavutil/version.h
+++ b/libavutil/version.h
@@ -79,7 +79,7 @@
  */
 
 #define LIBAVUTIL_VERSION_MAJOR  58
-#define LIBAVUTIL_VERSION_MINOR  25
+#define LIBAVUTIL_VERSION_MINOR  26
 #define LIBAVUTIL_VERSION_MICRO 100
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
-- 
2.42.0



More information about the ffmpeg-devel mailing list