mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
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>
This commit is contained in:
parent
e36eb94048
commit
f4f5da0d91
@ -27,6 +27,10 @@
|
|||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
|
|
||||||
|
#ifndef LIBILBC_VERSION_MAJOR
|
||||||
|
#define LIBILBC_VERSION_MAJOR 2
|
||||||
|
#endif
|
||||||
|
|
||||||
static int get_mode(AVCodecContext *avctx)
|
static int get_mode(AVCodecContext *avctx)
|
||||||
{
|
{
|
||||||
if (avctx->block_align == 38)
|
if (avctx->block_align == 38)
|
||||||
@ -41,7 +45,11 @@ static int get_mode(AVCodecContext *avctx)
|
|||||||
|
|
||||||
typedef struct ILBCDecContext {
|
typedef struct ILBCDecContext {
|
||||||
const AVClass *class;
|
const AVClass *class;
|
||||||
|
#if LIBILBC_VERSION_MAJOR < 3
|
||||||
iLBC_Dec_Inst_t decoder;
|
iLBC_Dec_Inst_t decoder;
|
||||||
|
#else
|
||||||
|
IlbcDecoder decoder;
|
||||||
|
#endif
|
||||||
int enhance;
|
int enhance;
|
||||||
} ILBCDecContext;
|
} ILBCDecContext;
|
||||||
|
|
||||||
@ -87,7 +95,12 @@ static int ilbc_decode_frame(AVCodecContext *avctx, void *data,
|
|||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (s->decoder.no_of_bytes > buf_size) {
|
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",
|
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);
|
buf_size, s->decoder.no_of_bytes);
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
@ -117,7 +130,11 @@ AVCodec ff_libilbc_decoder = {
|
|||||||
|
|
||||||
typedef struct ILBCEncContext {
|
typedef struct ILBCEncContext {
|
||||||
const AVClass *class;
|
const AVClass *class;
|
||||||
|
#if LIBILBC_VERSION_MAJOR < 3
|
||||||
iLBC_Enc_Inst_t encoder;
|
iLBC_Enc_Inst_t encoder;
|
||||||
|
#else
|
||||||
|
IlbcEncoder encoder;
|
||||||
|
#endif
|
||||||
int mode;
|
int mode;
|
||||||
} ILBCEncContext;
|
} ILBCEncContext;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user