#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)
typedef struct ILBCDecContext {
const AVClass *class;
+#if LIBILBC_VERSION_MAJOR < 3
iLBC_Dec_Inst_t decoder;
+#else
+ IlbcDecoder decoder;
+#endif
int enhance;
} ILBCDecContext;
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;
}
return s->decoder.no_of_bytes;
}
-AVCodec ff_libilbc_decoder = {
+const AVCodec ff_libilbc_decoder = {
.name = "libilbc",
.long_name = NULL_IF_CONFIG_SMALL("iLBC (Internet Low Bitrate Codec)"),
.type = AVMEDIA_TYPE_AUDIO,
.priv_data_size = sizeof(ILBCDecContext),
.init = ilbc_decode_init,
.decode = ilbc_decode_frame,
- .capabilities = AV_CODEC_CAP_DR1,
+ .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_CHANNEL_CONF,
.priv_class = &ilbc_dec_class,
};
typedef struct ILBCEncContext {
const AVClass *class;
+#if LIBILBC_VERSION_MAJOR < 3
iLBC_Enc_Inst_t encoder;
+#else
+ IlbcEncoder encoder;
+#endif
int mode;
} ILBCEncContext;
{ NULL }
};
-AVCodec ff_libilbc_encoder = {
+const AVCodec ff_libilbc_encoder = {
.name = "libilbc",
.long_name = NULL_IF_CONFIG_SMALL("iLBC (Internet Low Bitrate Codec)"),
.type = AVMEDIA_TYPE_AUDIO,