#endif
}
-static int faac_init_mp4(AVCodecContext *avctx)
+static av_cold int faac_init_mp4(AVCodecContext *avctx)
{
FAACContext *s = avctx->priv_data;
unsigned long samplerate;
static int faac_decode_frame(AVCodecContext *avctx,
void *data, int *data_size,
- uint8_t *buf, int buf_size)
+ AVPacket *avpkt)
{
+ const uint8_t *buf = avpkt->data;
+ int buf_size = avpkt->size;
FAACContext *s = avctx->priv_data;
#ifndef FAAD2_VERSION
unsigned long bytesconsumed;
unsigned char channels;
int r = s->faacDecInit(s->faac_handle, buf, buf_size, &srate, &channels);
if(r < 0){
- av_log(avctx, AV_LOG_ERROR, "faac: codec init failed.\n");
+ av_log(avctx, AV_LOG_ERROR, "libfaad: codec init failed.\n");
return -1;
}
avctx->sample_rate = srate;
out = s->faacDecDecode(s->faac_handle, &frame_info, (unsigned char*)buf, (unsigned long)buf_size);
if (frame_info.error > 0) {
- av_log(avctx, AV_LOG_ERROR, "faac: frame decoding failed: %s\n",
+ av_log(avctx, AV_LOG_ERROR, "libfaad: frame decoding failed: %s\n",
s->faacDecGetErrorMessage(frame_info.error));
return -1;
}
return 0;
}
-#define AAC_CODEC(id, name, long_name_) \
-AVCodec name ## _decoder = { \
- #name, \
- CODEC_TYPE_AUDIO, \
- id, \
- sizeof(FAACContext), \
- faac_decode_init, \
- NULL, \
- faac_decode_end, \
- faac_decode_frame, \
- .long_name = NULL_IF_CONFIG_SMALL(long_name_), \
-}
-
-// FIXME - raw AAC files - maybe just one entry will be enough
-AAC_CODEC(CODEC_ID_AAC, libfaad, "libfaad AAC (Advanced Audio Codec)");
-
-#undef AAC_CODEC
+AVCodec libfaad_decoder = {
+ "libfaad",
+ CODEC_TYPE_AUDIO,
+ CODEC_ID_AAC,
+ sizeof(FAACContext),
+ faac_decode_init,
+ NULL,
+ faac_decode_end,
+ faac_decode_frame,
+ .long_name = NULL_IF_CONFIG_SMALL("libfaad AAC (Advanced Audio Codec)"),
+};