Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions cpp/libFDK/include/nlc_dec.h
Original file line number Diff line number Diff line change
Expand Up @@ -156,14 +156,6 @@ typedef enum {

} PAIRING;

#ifndef HUFFDEC_PARAMS
#define HUFFDEC_PARMS

#define MAX_ENTRIES 168
#define HANDLE_HUFF_NODE const SHORT(*)[MAX_ENTRIES][2]

#endif /* HUFFDECPARAMS */

#define HUFFDEC_OK 0
#define HUFFDEC_NOTOK (-1)

Expand Down
90 changes: 37 additions & 53 deletions cpp/libFDK/src/nlc_dec.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ static ERROR_t pcm_decode(HANDLE_FDK_BITSTREAM strm, SCHAR* out_data_1,
}

static ERROR_t huff_read(HANDLE_FDK_BITSTREAM strm,
const SHORT (*nodeTab)[MAX_ENTRIES][2],
const SHORT (*nodeTab)[2],
int* out_data) {
int node = 0;
int len = 0;
Expand All @@ -236,7 +236,7 @@ static ERROR_t huff_read(HANDLE_FDK_BITSTREAM strm,
ULONG next_bit;
next_bit = FDKreadBits(strm, 1);
len++;
node = (*nodeTab)[node][next_bit];
node = nodeTab[node][next_bit];
} while (node > 0);

*out_data = node;
Expand All @@ -245,7 +245,7 @@ static ERROR_t huff_read(HANDLE_FDK_BITSTREAM strm,
}

static ERROR_t huff_read_2D(HANDLE_FDK_BITSTREAM strm,
const SHORT (*nodeTab)[MAX_ENTRIES][2],
const SHORT (*nodeTab)[2],
SCHAR out_data[2], int* escape) {
ERROR_t err = HUFFDEC_OK;

Expand Down Expand Up @@ -316,25 +316,25 @@ static ERROR_t huff_dec_1D(HANDLE_FDK_BITSTREAM strm, const DATA_TYPE data_type,
ULONG data = 0;
int bitsAvail = 0;

const SHORT(*partTab)[MAX_ENTRIES][2] = NULL;
const SHORT(*nodeTab)[MAX_ENTRIES][2] = NULL;
const SHORT(*partTab)[2] = NULL;
const SHORT(*nodeTab)[2] = NULL;

switch (data_type) {
case t_CLD:
partTab = (HANDLE_HUFF_NODE)&FDK_huffPart0Nodes.cld[0][0];
nodeTab = (HANDLE_HUFF_NODE)&FDK_huffCLDNodes.h1D[dim1]->nodeTab[0][0];
partTab = FDK_huffPart0Nodes.cld;
nodeTab = FDK_huffCLDNodes.h1D[dim1]->nodeTab;
break;
case t_ICC:
partTab = (HANDLE_HUFF_NODE)&FDK_huffPart0Nodes.icc[0][0];
nodeTab = (HANDLE_HUFF_NODE)&FDK_huffICCNodes.h1D[dim1]->nodeTab[0][0];
partTab = FDK_huffPart0Nodes.icc;
nodeTab = FDK_huffICCNodes.h1D[dim1]->nodeTab;
break;
case t_OLD:
partTab = (HANDLE_HUFF_NODE)&FDK_huffPart0Nodes.old[0][0];
nodeTab = (HANDLE_HUFF_NODE)&huffOLDNodes.h1D[dim1]->nodeTab[0][0];
partTab = FDK_huffPart0Nodes.old;
nodeTab = huffOLDNodes.h1D[dim1]->nodeTab;
break;
case t_IPD:
partTab = (HANDLE_HUFF_NODE)&FDK_huffPart0Nodes.ipd[0][0];
nodeTab = (HANDLE_HUFF_NODE)&FDK_huffIPDNodes.h1D[dim1].nodeTab[0][0];
partTab = FDK_huffPart0Nodes.ipd;
nodeTab = FDK_huffIPDNodes.h1D[dim1].nodeTab;
break;
default:
FDK_ASSERT(0);
Expand Down Expand Up @@ -396,36 +396,35 @@ static ERROR_t huff_dec_2D(HANDLE_FDK_BITSTREAM strm, const DATA_TYPE data_type,

SCHAR esc_data[2][28] = {{0}};
int escIdx[28] = {0};
const SHORT(*nodeTab)[MAX_ENTRIES][2] = NULL;
const SHORT(*nodeTab)[2] = NULL;

/* LAV */
if ((err =
huff_read(strm, (HANDLE_HUFF_NODE)&FDK_huffLavIdxNodes.nodeTab[0][0],
&node)) != HUFFDEC_OK) {
if ((err = huff_read(strm, FDK_huffLavIdxNodes.nodeTab, &node)) !=
HUFFDEC_OK) {
goto bail;
}
data = -(node + 1);

switch (data_type) {
case t_CLD:
lav = 2 * data + 3; /* 3, 5, 7, 9 */
nodeTab = (HANDLE_HUFF_NODE)&FDK_huffPart0Nodes.cld[0][0];
nodeTab = FDK_huffPart0Nodes.cld;
break;
case t_ICC:
lav = 2 * data + 1; /* 1, 3, 5, 7 */
nodeTab = (HANDLE_HUFF_NODE)&FDK_huffPart0Nodes.icc[0][0];
nodeTab = FDK_huffPart0Nodes.icc;
break;
case t_OLD:
lav = 3 * data + 3;
nodeTab = (HANDLE_HUFF_NODE)&FDK_huffPart0Nodes.old[0][0];
nodeTab = FDK_huffPart0Nodes.old;
break;
case t_IPD:
if (data == 0)
data = 3;
else
data--;
lav = 2 * data + 1; /* 1, 3, 5, 7 */
nodeTab = (HANDLE_HUFF_NODE)&FDK_huffPart0Nodes.ipd[0][0];
nodeTab = FDK_huffPart0Nodes.ipd;
break;
default:
FDK_ASSERT(0);
Expand All @@ -451,77 +450,64 @@ static ERROR_t huff_dec_2D(HANDLE_FDK_BITSTREAM strm, const DATA_TYPE data_type,
case t_CLD:
switch (lav) {
case 3:
nodeTab =
(HANDLE_HUFF_NODE)&FDK_huffCLDNodes.h2D[dim1][dim2]->lav3[0][0];
nodeTab = FDK_huffCLDNodes.h2D[dim1][dim2]->lav3;
break;
case 5:
nodeTab =
(HANDLE_HUFF_NODE)&FDK_huffCLDNodes.h2D[dim1][dim2]->lav5[0][0];
nodeTab = FDK_huffCLDNodes.h2D[dim1][dim2]->lav5;
break;
case 7:
nodeTab =
(HANDLE_HUFF_NODE)&FDK_huffCLDNodes.h2D[dim1][dim2]->lav7[0][0];
nodeTab = FDK_huffCLDNodes.h2D[dim1][dim2]->lav7;
break;
case 9:
nodeTab =
(HANDLE_HUFF_NODE)&FDK_huffCLDNodes.h2D[dim1][dim2]->lav9[0][0];
nodeTab = FDK_huffCLDNodes.h2D[dim1][dim2]->lav9;
break;
}
break;
case t_ICC:
switch (lav) {
case 1:
nodeTab =
(HANDLE_HUFF_NODE)&FDK_huffICCNodes.h2D[dim1][dim2]->lav1[0][0];
nodeTab = FDK_huffICCNodes.h2D[dim1][dim2]->lav1;
break;
case 3:
nodeTab =
(HANDLE_HUFF_NODE)&FDK_huffICCNodes.h2D[dim1][dim2]->lav3[0][0];
nodeTab = FDK_huffICCNodes.h2D[dim1][dim2]->lav3;
break;
case 5:
nodeTab =
(HANDLE_HUFF_NODE)&FDK_huffICCNodes.h2D[dim1][dim2]->lav5[0][0];
nodeTab = FDK_huffICCNodes.h2D[dim1][dim2]->lav5;
break;
case 7:
nodeTab =
(HANDLE_HUFF_NODE)&FDK_huffICCNodes.h2D[dim1][dim2]->lav7[0][0];
nodeTab = FDK_huffICCNodes.h2D[dim1][dim2]->lav7;
break;
}
break;
case t_OLD:
switch (lav) {
case 3:
nodeTab = (HANDLE_HUFF_NODE)&huffOLDNodes.h2D[dim1][dim2]->lav3[0][0];
nodeTab = huffOLDNodes.h2D[dim1][dim2]->lav3;
break;
case 6:
nodeTab = (HANDLE_HUFF_NODE)&huffOLDNodes.h2D[dim1][dim2]->lav6[0][0];
nodeTab = huffOLDNodes.h2D[dim1][dim2]->lav6;
break;
case 9:
nodeTab = (HANDLE_HUFF_NODE)&huffOLDNodes.h2D[dim1][dim2]->lav9[0][0];
nodeTab = huffOLDNodes.h2D[dim1][dim2]->lav9;
break;
case 12:
nodeTab =
(HANDLE_HUFF_NODE)&huffOLDNodes.h2D[dim1][dim2]->lav12[0][0];
nodeTab = huffOLDNodes.h2D[dim1][dim2]->lav12;
break;
}
break;
case t_IPD:
switch (lav) {
case 1:
nodeTab =
(HANDLE_HUFF_NODE)&FDK_huffIPDNodes.h2D[dim1][dim2].lav1[0][0];
nodeTab = FDK_huffIPDNodes.h2D[dim1][dim2].lav1;
break;
case 3:
nodeTab =
(HANDLE_HUFF_NODE)&FDK_huffIPDNodes.h2D[dim1][dim2].lav3[0][0];
nodeTab = FDK_huffIPDNodes.h2D[dim1][dim2].lav3;
break;
case 5:
nodeTab =
(HANDLE_HUFF_NODE)&FDK_huffIPDNodes.h2D[dim1][dim2].lav5[0][0];
nodeTab = FDK_huffIPDNodes.h2D[dim1][dim2].lav5;
break;
case 7:
nodeTab =
(HANDLE_HUFF_NODE)&FDK_huffIPDNodes.h2D[dim1][dim2].lav7[0][0];
nodeTab = FDK_huffIPDNodes.h2D[dim1][dim2].lav7;
break;
}
break;
Expand Down Expand Up @@ -1049,9 +1035,7 @@ ERROR_t huff_dec_reshape(HANDLE_FDK_BITSTREAM strm, int* out_data,
SCHAR rl_data[2] = {0};

while (val_rcvd < num_val) {
err = huff_read_2D(strm,
(HANDLE_HUFF_NODE)&FDK_huffReshapeNodes.nodeTab[0][0],
rl_data, &dummy);
err = huff_read_2D(strm, FDK_huffReshapeNodes.nodeTab, rl_data, &dummy);
if (err != HUFFDEC_OK) goto bail;
val = rl_data[0];
len = rl_data[1] + 1;
Expand Down
2 changes: 1 addition & 1 deletion cpp/libMpegTPEnc/src/tpenc_latm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ CreateStreamMuxConfig(HANDLE_LATM_STREAM hAss, HANDLE_FDK_BITSTREAM hBs,
FDKwriteBits(hBs, bufferFullness, 8); /* bufferFullness */
hAss->streamMuxConfigBits += 11;

if (!hAss->allStreamsSameTimeFraming) {
if (!hAss->allStreamsSameTimeFraming && layer > 0) {
CODER_CONFIG *p_lci_prev = hAss->config[prog][layer - 1];
if (((p_lci->aot == AOT_AAC_SCAL) ||
(p_lci->aot == AOT_ER_AAC_SCAL)) &&
Expand Down
2 changes: 2 additions & 0 deletions cpp/libSACenc/src/sacenc_nlc_enc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ static void apply_lsb_coding(HANDLE_FDK_BITSTREAM strm,
static void calc_diff_freq(const SHORT *const in_data, SHORT *const out_data,
const INT num_val) {
int i;
if (num_val <= 0) return;
out_data[0] = in_data[0];

for (i = 1; i < num_val; i++) {
Expand All @@ -189,6 +190,7 @@ static void calc_diff_time(const SHORT *const in_data,
const SHORT *const prev_data, SHORT *const out_data,
const INT num_val) {
int i;
if (num_val <= 0) return;
out_data[0] = in_data[0];
out_data[1] = prev_data[0];

Expand Down
3 changes: 1 addition & 2 deletions cpp/libSBRenc/src/ps_encode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -998,8 +998,7 @@ FDK_PSENC_ERROR FDKsbrEnc_PSEncode(
}

/* IPD OPD not supported right now */
FDKmemclear(hPsOut->ipd,
PS_MAX_ENVELOPES * PS_MAX_BANDS * sizeof(PS_DELTA));
FDKmemclear(hPsOut->ipd, sizeof(hPsOut->ipd));
for (env = 0; env < PS_MAX_ENVELOPES; env++) {
hPsOut->deltaIPD[env] = PS_DELTA_FREQ;
hPsOut->deltaOPD[env] = PS_DELTA_FREQ;
Expand Down
2 changes: 1 addition & 1 deletion xhe-aac/mp4loaswrite/src/latm_interface.c
Original file line number Diff line number Diff line change
Expand Up @@ -357,7 +357,7 @@ static HANDLE_ERROR_INFO CreateStreamMuxConfig(HANDLE_LATM_STREAM_INFO hAss,
WriteBits(hAss->hSetupData, 0xff, 8);

hAss->streamMuxConfigBits += 11;
if (!hAss->allStreamsSameTimeFraming) {
if (!hAss->allStreamsSameTimeFraming && layer > 0) {
CODER_CONFIG_INFO *p_lci_prev = layerConfig[prog][layer - 1];
if (((p_lci->asc.aot == AOT_AAC_SCAL) || (p_lci->asc.aot == AOT_ER_AAC_SCAL)) &&
((p_lci_prev->asc.aot == AOT_CELP) || (p_lci_prev->asc.aot == AOT_ER_CELP))) {
Expand Down
17 changes: 11 additions & 6 deletions xhe-aac/spaceEnclib/src/sac_nlc_enc.c
Original file line number Diff line number Diff line change
Expand Up @@ -127,10 +127,11 @@ static const short lavMapIPD[4] = {7, 1, 3, 5};

static void split_lsb(short* in_data,
short offset,
short num_val,
int num_val,
short* out_data_lsb,
short* out_data_msb) {
short i = 0, val = 0, lsb = 0, msb = 0;
int i = 0;
short val = 0, lsb = 0, msb = 0;

for (i = 0; i < num_val; i++) {
val = in_data[i] + offset;
Expand All @@ -156,8 +157,10 @@ static void apply_lsb_coding(HANDLE_BIT_BUF strm,

static void calc_diff_freq(short* in_data,
short* out_data,
short num_val) {
short i = 0;
int num_val) {
int i = 0;

if (num_val <= 0) return;

out_data[0] = in_data[0];

Expand All @@ -169,8 +172,10 @@ static void calc_diff_freq(short* in_data,
static void calc_diff_time(short* in_data,
short* prev_data,
short* out_data,
short num_val) {
short i = 0;
int num_val) {
int i = 0;

if (num_val <= 0) return;

out_data[0] = in_data[0];
out_data[1] = prev_data[0];
Expand Down
Loading