2013-01-04 17:10:05 +01:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2013 nu774
|
|
|
|
* For conditions of distribution and use, see copyright notice in COPYING
|
|
|
|
*/
|
|
|
|
#ifndef AACENC_H
|
|
|
|
#define AACENC_H
|
|
|
|
|
|
|
|
#include <fdk-aac/aacenc_lib.h>
|
|
|
|
#include "lpcm.h"
|
|
|
|
|
|
|
|
#define AACENC_PARAMS \
|
|
|
|
unsigned profile; \
|
|
|
|
unsigned bitrate; \
|
|
|
|
unsigned bitrate_mode; \
|
|
|
|
unsigned bandwidth; \
|
|
|
|
unsigned afterburner; \
|
|
|
|
unsigned lowdelay_sbr; \
|
2013-11-03 05:14:41 +01:00
|
|
|
unsigned sbr_ratio; \
|
2013-01-04 17:10:05 +01:00
|
|
|
unsigned sbr_signaling; \
|
|
|
|
unsigned transport_format; \
|
|
|
|
unsigned adts_crc_check; \
|
|
|
|
unsigned header_period;
|
|
|
|
|
|
|
|
typedef struct aacenc_param_t {
|
|
|
|
AACENC_PARAMS
|
|
|
|
} aacenc_param_t;
|
|
|
|
|
2013-10-30 03:58:30 +01:00
|
|
|
typedef struct aacenc_frame_t {
|
2013-10-29 16:46:11 +01:00
|
|
|
uint8_t *data;
|
2013-10-30 03:58:30 +01:00
|
|
|
uint32_t size, capacity;
|
|
|
|
} aacenc_frame_t;
|
2013-10-29 16:46:11 +01:00
|
|
|
|
2013-11-03 05:14:41 +01:00
|
|
|
int aacenc_is_sbr_ratio_available();
|
|
|
|
|
2013-01-04 17:10:05 +01:00
|
|
|
int aacenc_is_sbr_active(const aacenc_param_t *params);
|
|
|
|
|
2013-11-03 05:14:41 +01:00
|
|
|
int aacenc_is_dual_rate_sbr(const aacenc_param_t *params);
|
|
|
|
|
|
|
|
void aacenc_get_lib_info(LIB_INFO *info);
|
|
|
|
|
2013-01-04 17:10:05 +01:00
|
|
|
int aacenc_init(HANDLE_AACENCODER *encoder, const aacenc_param_t *params,
|
|
|
|
const pcm_sample_description_t *format,
|
|
|
|
AACENC_InfoStruct *info);
|
|
|
|
|
|
|
|
int aac_encode_frame(HANDLE_AACENCODER encoder,
|
|
|
|
const pcm_sample_description_t *format,
|
|
|
|
const int16_t *input, unsigned iframes,
|
2013-10-30 03:58:30 +01:00
|
|
|
aacenc_frame_t *output);
|
2013-01-04 17:10:05 +01:00
|
|
|
|
|
|
|
#endif
|