Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-03-11 03:43:44 +0300
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-03-11 04:02:26 +0300
commitf4f5da0d9167bb3ebf7519ded2a9965bac5404bf (patch)
tree36c24fec11f2393848492ec9f635651b12d808ed /libavcodec/libilbc.c
parente36eb940484b8b8ef5f3e7542d12240e24839fcf (diff)
avcodec/libilbc: Support newer libiLBC versions
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>
Diffstat (limited to 'libavcodec/libilbc.c')
-rw-r--r--libavcodec/libilbc.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/libavcodec/libilbc.c b/libavcodec/libilbc.c
index 08f951ac2d..9c82589918 100644
--- a/libavcodec/libilbc.c
+++ b/libavcodec/libilbc.c
@@ -27,6 +27,10 @@
#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;