]> git.sesse.net Git - ffmpeg/commitdiff
avcodec/libilbc: Support newer libiLBC versions
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Thu, 11 Mar 2021 00:43:44 +0000 (01:43 +0100)
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Thu, 11 Mar 2021 01:02:26 +0000 (02:02 +0100)
Beginning with version 3.0, libiLBC switched the types of some parts
of their public API to size_t and renamed some types; the old names
continue to work as typedefs, but are deprecated. It furthermore
added version macros.

This commit uses said version macro to use the new types when using
newer libiLBC versions.

Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
libavcodec/libilbc.c

index 08f951ac2dc85e08d8ef647b9a33dd9607bc9520..9c82589918016ca944414c16366c5f221456e64b 100644 (file)
 #include "avcodec.h"
 #include "internal.h"
 
+#ifndef LIBILBC_VERSION_MAJOR
+#define LIBILBC_VERSION_MAJOR 2
+#endif
+
 static int get_mode(AVCodecContext *avctx)
 {
     if (avctx->block_align == 38)
@@ -41,7 +45,11 @@ static int get_mode(AVCodecContext *avctx)
 
 typedef struct ILBCDecContext {
     const AVClass *class;
+#if LIBILBC_VERSION_MAJOR < 3
     iLBC_Dec_Inst_t decoder;
+#else
+    IlbcDecoder decoder;
+#endif
     int enhance;
 } ILBCDecContext;
 
@@ -87,7 +95,12 @@ static int ilbc_decode_frame(AVCodecContext *avctx, void *data,
     int ret;
 
     if (s->decoder.no_of_bytes > buf_size) {
+#if LIBILBC_VERSION_MAJOR < 3
         av_log(avctx, AV_LOG_ERROR, "iLBC frame too short (%u, should be %u)\n",
+#else
+        av_log(avctx, AV_LOG_ERROR, "iLBC frame too short (%u, should be "
+                                    "%"SIZE_SPECIFIER")\n",
+#endif
                buf_size, s->decoder.no_of_bytes);
         return AVERROR_INVALIDDATA;
     }
@@ -117,7 +130,11 @@ AVCodec ff_libilbc_decoder = {
 
 typedef struct ILBCEncContext {
     const AVClass *class;
+#if LIBILBC_VERSION_MAJOR < 3
     iLBC_Enc_Inst_t encoder;
+#else
+    IlbcEncoder encoder;
+#endif
     int mode;
 } ILBCEncContext;