mediabus-fdk-aac-0.3.0.0: src/Data/MediaBus/FdkAac/EncoderFdkWrapper.c
#include <stdio.h>
#include <stdint.h>
#include "fdk-aac/aacenc_lib.h"
uintptr_t inline_c_Data_MediaBus_FdkAac_EncoderFdkWrapper_0_e88399b3eaf706673efe095f84ff92194fa12ff2(int * aacEncoderCfgErrorP_inline_c_0, unsigned configChannelMode_inline_c_1, unsigned configModules_inline_c_2, unsigned configChannels_inline_c_3, int * aacEncoderCfgErrorP_inline_c_4, unsigned configAot_inline_c_5, int * aacEncoderCfgErrorP_inline_c_6, unsigned configSbrMode_inline_c_7, int * aacEncoderCfgErrorP_inline_c_8, unsigned configSampleRate_inline_c_9, int * aacEncoderCfgErrorP_inline_c_10, int * aacEncoderCfgErrorP_inline_c_11, unsigned configBitRateMode_inline_c_12, int * aacEncoderCfgErrorP_inline_c_13, unsigned configBitRate_inline_c_14, int * aacEncoderCfgErrorP_inline_c_15, unsigned configBandwidth_inline_c_16, unsigned configBandwidth_inline_c_17, int * aacEncoderCfgErrorP_inline_c_18, int * aacEncoderCfgErrorP_inline_c_19, unsigned configSignallingMode_inline_c_20, int * aacEncoderCfgErrorP_inline_c_21, unsigned configAfterburner_inline_c_22, int * aacEncoderCfgErrorP_inline_c_23, int * aacEncoderCfgErrorP_inline_c_24, int * aacEncoderCfgErrorP_inline_c_25, unsigned confBufMaxLen_inline_c_26, unsigned char * confBufP_inline_c_27, unsigned * confBufSizeP_inline_c_28, unsigned * encDelayP_inline_c_29, unsigned * frameSizeP_inline_c_30, int * errorCodeP_inline_c_31) {
AACENC_ERROR e = AACENC_OK;
HANDLE_AACENCODER phAacEncoder;
AACENC_InfoStruct pInfo;
CHANNEL_MODE channelMode;
*(aacEncoderCfgErrorP_inline_c_0) = 13;
switch (configChannelMode_inline_c_1) {
case 1: channelMode = MODE_1; break;
case 2: channelMode = MODE_2; break;
case 3: channelMode = MODE_1_2; break;
case 4: channelMode = MODE_1_2_1; break;
case 5: channelMode = MODE_1_2_2; break;
case 6: channelMode = MODE_1_2_2_1; break;
default: channelMode = 0; break;
}
e = aacEncOpen(&phAacEncoder, configModules_inline_c_2, configChannels_inline_c_3);
if (e != AACENC_OK) {
*(aacEncoderCfgErrorP_inline_c_4) = 0;
goto e0;
}
e = aacEncoder_SetParam(phAacEncoder, AACENC_AOT, (const UINT) configAot_inline_c_5);
if (e != AACENC_OK) {
*(aacEncoderCfgErrorP_inline_c_6) = 1;
goto e1;
}
e = aacEncoder_SetParam(phAacEncoder, AACENC_SBR_MODE, (const UINT) configSbrMode_inline_c_7);
if (e != AACENC_OK) {
*(aacEncoderCfgErrorP_inline_c_8) = 2;
goto e1;
}
e = aacEncoder_SetParam(phAacEncoder, AACENC_SAMPLERATE, (const UINT) configSampleRate_inline_c_9);
if (e != AACENC_OK) {
*(aacEncoderCfgErrorP_inline_c_10) = 3;
goto e1;
}
e = aacEncoder_SetParam(phAacEncoder, AACENC_CHANNELMODE, channelMode);
if (e != AACENC_OK) {
*(aacEncoderCfgErrorP_inline_c_11) = 4;
goto e1;
}
e = aacEncoder_SetParam(phAacEncoder, AACENC_BITRATEMODE, (const UINT) configBitRateMode_inline_c_12);
if (e != AACENC_OK) {
*(aacEncoderCfgErrorP_inline_c_13) = 5;
goto e1;
}
e = aacEncoder_SetParam(phAacEncoder, AACENC_BITRATE, (const UINT) configBitRate_inline_c_14);
if (e != AACENC_OK) {
*(aacEncoderCfgErrorP_inline_c_15) = 6;
goto e1;
}
if ((const UINT) configBandwidth_inline_c_16 != 0) {
e = aacEncoder_SetParam(phAacEncoder, AACENC_BANDWIDTH, (const UINT) configBandwidth_inline_c_17);
if (e != AACENC_OK) {
*(aacEncoderCfgErrorP_inline_c_18) = 7;
goto e1;
}
}
e = aacEncoder_SetParam(phAacEncoder, AACENC_TRANSMUX, TT_MP4_RAW); // TODO extract from TRANSPORT_TYPE in FDK_audio.h
if (e != AACENC_OK) {
*(aacEncoderCfgErrorP_inline_c_19) = 8;
goto e1;
}
e = aacEncoder_SetParam(phAacEncoder, AACENC_SIGNALING_MODE, (const UINT) configSignallingMode_inline_c_20);
if (e != AACENC_OK) {
*(aacEncoderCfgErrorP_inline_c_21) = 9;
goto e1;
}
e = aacEncoder_SetParam(phAacEncoder, AACENC_AFTERBURNER, (const UINT) configAfterburner_inline_c_22);
if (e != AACENC_OK) {
*(aacEncoderCfgErrorP_inline_c_23) = 10;
goto e1;
}
e = aacEncEncode(phAacEncoder, NULL, NULL, NULL, NULL);
if (e != AACENC_OK) {
*(aacEncoderCfgErrorP_inline_c_24) = 11;
goto e1;
}
e = aacEncInfo(phAacEncoder, &pInfo);
if (e != AACENC_OK) {
*(aacEncoderCfgErrorP_inline_c_25) = 12;
goto e1;
}
for (unsigned int i = 0; i < pInfo.confSize && i < confBufMaxLen_inline_c_26; ++i) {
*(confBufP_inline_c_27 + i) = pInfo.confBuf[i];
}
*(confBufSizeP_inline_c_28) = pInfo.confSize;
*(encDelayP_inline_c_29) = pInfo.encoderDelay;
*(frameSizeP_inline_c_30) = pInfo.frameLength;
return ((uintptr_t) phAacEncoder);
e1:
if (AACENC_OK != aacEncClose(&phAacEncoder)) {
printf("Failed to free the AAC Encoder.\n");
}
e0:
*(errorCodeP_inline_c_31) = e;
return (uintptr_t)NULL;
}
int inline_c_Data_MediaBus_FdkAac_EncoderFdkWrapper_1_922d89f2c2b9a2bb7dbc4bbc946440f71a320f2a(uintptr_t encoderHandle_inline_c_0, long vec_inline_c_1, short * vec_inline_c_2, long vec_inline_c_3, long unsafeOutBuffer_inline_c_4, unsigned char * unsafeOutBuffer_inline_c_5, int * numOutBytesP_inline_c_6, int * numInSamplesP_inline_c_7, int * numAncBytesP_inline_c_8) {
AACENC_ERROR e;
HANDLE_AACENCODER phAacEncoder = (HANDLE_AACENCODER) encoderHandle_inline_c_0;
AACENC_BufDesc inBuffDesc;
INT inBuffIds[1] = {IN_AUDIO_DATA};
INT inBuffSizes[1] = {vec_inline_c_1 * 2};
INT inBuffElSizes[1] = {2};
void* inBuffBuffers[1] = {vec_inline_c_2};
inBuffDesc.numBufs = 1;
inBuffDesc.bufs = inBuffBuffers;
inBuffDesc.bufferIdentifiers = inBuffIds;
inBuffDesc.bufSizes = inBuffSizes;
inBuffDesc.bufElSizes = inBuffElSizes;
AACENC_InArgs inArgs =
{ .numInSamples = vec_inline_c_3
, .numAncBytes = 0 };
AACENC_BufDesc outBuffDesc;
INT outBuffIds[1] = {OUT_BITSTREAM_DATA};
INT outBuffSizes[1] = {unsafeOutBuffer_inline_c_4};
INT outBuffElSizes[1] = {1};
void* outBuffBuffers[1] = {unsafeOutBuffer_inline_c_5};
outBuffDesc.numBufs = 1;
outBuffDesc.bufs = outBuffBuffers;
outBuffDesc.bufferIdentifiers = outBuffIds;
outBuffDesc.bufSizes = outBuffSizes;
outBuffDesc.bufElSizes = outBuffElSizes;
AACENC_OutArgs outArgs;
e = aacEncEncode (phAacEncoder, &inBuffDesc, &outBuffDesc,
&inArgs, &outArgs);
*(numOutBytesP_inline_c_6) = outArgs.numOutBytes;
*(numInSamplesP_inline_c_7) = outArgs.numInSamples;
*(numAncBytesP_inline_c_8) = outArgs.numAncBytes;
return e;
}
int inline_c_Data_MediaBus_FdkAac_EncoderFdkWrapper_2_666791a4914d28907cccec9952c8fb7e36c63ac9(uintptr_t encoderHandle_inline_c_0, long unsafeOutBuffer_inline_c_1, unsigned char * unsafeOutBuffer_inline_c_2, int * numOutBytesP_inline_c_3, int * numInSamplesP_inline_c_4, int * numAncBytesP_inline_c_5) {
AACENC_ERROR e;
HANDLE_AACENCODER phAacEncoder = (HANDLE_AACENCODER) encoderHandle_inline_c_0;
AACENC_BufDesc inBuffDesc;
inBuffDesc.numBufs = 0;
AACENC_InArgs inArgs =
{ .numInSamples = -1
, .numAncBytes = 0 };
AACENC_BufDesc outBuffDesc;
INT outBuffIds[1] = {OUT_BITSTREAM_DATA};
INT outBuffSizes[1] = {unsafeOutBuffer_inline_c_1};
INT outBuffElSizes[1] = {1};
void* outBuffBuffers[1] = {unsafeOutBuffer_inline_c_2};
outBuffDesc.numBufs = 1;
outBuffDesc.bufs = outBuffBuffers;
outBuffDesc.bufferIdentifiers = outBuffIds;
outBuffDesc.bufSizes = outBuffSizes;
outBuffDesc.bufElSizes = outBuffElSizes;
AACENC_OutArgs outArgs;
e = aacEncEncode (phAacEncoder, &inBuffDesc, &outBuffDesc,
&inArgs, &outArgs);
*(numOutBytesP_inline_c_3) = outArgs.numOutBytes;
*(numInSamplesP_inline_c_4) = outArgs.numInSamples;
*(numAncBytesP_inline_c_5) = outArgs.numAncBytes;
return e;
}
int inline_c_Data_MediaBus_FdkAac_EncoderFdkWrapper_3_8fd9c8ff1f367d8600d391d8958211c9959d567d(uintptr_t encoderHandle_inline_c_0) {
HANDLE_AACENCODER phAacEncoder = (HANDLE_AACENCODER) encoderHandle_inline_c_0;
return aacEncClose(&phAacEncoder);
}