From 1316df7aa98c4784f190d107206d0bb12c590b89 Mon Sep 17 00:00:00 2001
From: wm4 <nfxjfg@googlemail.com>
Date: Thu, 2 Jul 2015 19:04:59 +0200
Subject: [PATCH] lavu: add an API function to return the Libav version string

This returns something like "v12_dev0-1332-g333a27c". This is much more
useful than the individual library versions, of which there are too
many, and which are very hard to map back to releases or git commits.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
---
 .gitignore         | 2 +-
 Makefile           | 6 +++---
 cmdutils.c         | 2 +-
 doc/APIchanges     | 3 +++
 libavutil/avutil.h | 7 +++++++
 libavutil/utils.c  | 7 +++++++
 6 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/.gitignore b/.gitignore
index e225866ec68..d3cde42c650 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,7 +26,7 @@
 /avprobe
 /config.*
 /coverage.info
-/version.h
+/avversion.h
 /doc/*.1
 /doc/*.html
 /doc/*.pod
diff --git a/Makefile b/Makefile
index cc016b3cd11..5807acd562b 100644
--- a/Makefile
+++ b/Makefile
@@ -162,8 +162,8 @@ GIT_LOG     = $(SRC_PATH)/.git/logs/HEAD
 .version: $(wildcard $(GIT_LOG)) $(VERSION_SH) config.mak
 .version: M=@
 
-version.h .version:
-	$(M)$(VERSION_SH) $(SRC_PATH) version.h $(EXTRA_VERSION)
+avversion.h .version:
+	$(M)$(VERSION_SH) $(SRC_PATH) avversion.h $(EXTRA_VERSION)
 	$(Q)touch .version
 
 # force version.sh to run whenever version might have changed
@@ -204,7 +204,7 @@ clean::
 
 distclean::
 	$(RM) $(DISTCLEANSUFFIXES)
-	$(RM) config.* .config libavutil/avconfig.h .version version.h
+	$(RM) config.* .config libavutil/avconfig.h .version avversion.h
 
 config:
 	$(SRC_PATH)/configure $(value LIBAV_CONFIGURATION)
diff --git a/cmdutils.c b/cmdutils.c
index c4a78199f36..bc22ef58395 100644
--- a/cmdutils.c
+++ b/cmdutils.c
@@ -45,8 +45,8 @@
 #include "libavutil/dict.h"
 #include "libavutil/opt.h"
 #include "libavutil/cpu.h"
+#include "avversion.h"
 #include "cmdutils.h"
-#include "version.h"
 #if CONFIG_NETWORK
 #include "libavformat/network.h"
 #endif
diff --git a/doc/APIchanges b/doc/APIchanges
index 0ddfb11e03c..06ad1b7f4f1 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -19,6 +19,9 @@ API changes, most recent first:
 2015-xx-xx - xxxxxxx - lavu 54.14.0 - cpu.h
   Add AV_CPU_FLAG_AVXSLOW.
 
+2015-xx-xx - xxxxxxx - lavu 56.xx.0
+  Add av_version_info().
+
 2015-xx-xx - xxxxxxx - lavc 56.23.0
   Add av_vda_default_init2.
 
diff --git a/libavutil/avutil.h b/libavutil/avutil.h
index f056415f095..688068eff87 100644
--- a/libavutil/avutil.h
+++ b/libavutil/avutil.h
@@ -163,6 +163,13 @@
  */
 unsigned avutil_version(void);
 
+/**
+ * Return an informative version string. This usually is the actual release
+ * version number or a git commit description. This string has no fixed format
+ * and can change any time. It should never be parsed by code.
+ */
+const char *av_version_info(void);
+
 /**
  * Return the libavutil build-time configuration.
  */
diff --git a/libavutil/utils.c b/libavutil/utils.c
index c8c161dccba..8dcf3b67748 100644
--- a/libavutil/utils.c
+++ b/libavutil/utils.c
@@ -19,11 +19,18 @@
 #include "config.h"
 #include "avutil.h"
 
+#include "avversion.h"
+
 /**
  * @file
  * various utility functions
  */
 
+const char *av_version_info(void)
+{
+    return LIBAV_VERSION;
+}
+
 unsigned avutil_version(void)
 {
     return LIBAVUTIL_VERSION_INT;
-- 
GitLab