Versioning
authorJean-Marc Valin <jmvalin@jmvalin.ca>
Fri, 12 May 2017 06:32:31 +0000 (02:32 -0400)
committerJean-Marc Valin <jmvalin@jmvalin.ca>
Fri, 12 May 2017 06:32:31 +0000 (02:32 -0400)
include/opusenc.h
src/opusenc.c

index 2f1eea6..11855d4 100644 (file)
@@ -48,6 +48,10 @@ extern "C" {
 # endif
 #endif
 
+/* Bump this when we change the API. */
+/** API version for this header. Can be used to check for features at compile time. */
+#define OPE_API_VERSION 0
+
 #define OPE_OK 0
 /* Based on the relevant libopus code minus 10. */
 #define OPE_BAD_ARG -11
@@ -164,6 +168,12 @@ OPE_EXPORT int ope_encoder_flush_header(OggOpusEnc *enc);
 /** Goes straight to the libopus ctl() functions. */
 OPE_EXPORT int ope_encoder_ctl(OggOpusEnc *enc, int request, ...);
 
+/** Returns a string representing the version of libopusenc being used at run time. */
+OPE_EXPORT const char *ope_get_version_string(void);
+
+/** ABI version for this header. Can be used to check for features at run time. */
+OPE_EXPORT int ope_get_abi_version(void);
+
 # if defined(__cplusplus)
 }
 # endif
index 674b43f..c4bc29b 100644 (file)
@@ -45,6 +45,9 @@
 #include "picture.h"
 #include "ogg_packer.h"
 
+/* Bump this when we change the ABI. */
+#define OPE_ABI_VERSION 0
+
 #define MAX_CHANNELS 8
 
 #define LPC_PADDING 120
@@ -919,6 +922,14 @@ int ope_encoder_ctl(OggOpusEnc *enc, int request, ...) {
   return ret;
 }
 
+const char *ope_get_version_string(void)
+{
+  return "libopusenc " PACKAGE_VERSION;
+}
+
+int ope_get_abi_version(void) {
+  return OPE_ABI_VERSION;
+}
 
 static void vorbis_lpc_from_data(float *data, float *lpci, int n, int stride);