@@ -643,18 +643,9 @@ long NeAACDecInit(NeAACDecHandle hpDecoder, unsigned char* buffer, uint32_t buff
643643 ret = bits;
644644 goto exit;
645645exit:
646- if(ld) {
647- free(ld);
648- ld = NULL;
649- }
650- if(adts) {
651- free(adts);
652- adts = NULL;
653- }
654- if(adif) {
655- free(adif);
656- adif = NULL;
657- }
646+ faad_free(ld);
647+ faad_free(adif);
648+ faad_free(adts);
658649 return ret;
659650}
660651//——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
@@ -1059,7 +1050,7 @@ void* aac_frame_decode(NeAACDecStruct* hDecoder, NeAACDecFrameInfo* hInfo, unsig
10591050 //temp = getdword((void*)buf);
10601051 temp = *((uint32_t*)buf);
10611052 printf("0x%.8X\n", temp);
1062- free (buf);
1053+ faad_free (buf);
10631054 }
10641055 faad_endbits(&ld);
10651056 faad_initbits(&ld, buffer, buffer_size);
@@ -3960,7 +3951,7 @@ void faad_imdct(mdct_info* mdct, real_t* X_in, real_t* X_out) {
39603951 mdct->fft_cycles += count1;
39613952 mdct->cycles += (count2 - count1);
39623953#endif
3963- if(Z1) free (Z1);
3954+ faad_free (Z1);
39643955}
39653956//——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
39663957#ifdef LTP_DEC
@@ -4236,7 +4227,7 @@ void ifilter_bank(fb_info* fb, uint8_t window_sequence, uint8_t window_shape, ui
42364227 count = faad_get_ts() - count;
42374228 fb->cycles += count;
42384229#endif
4239- if(transf_buf) free (transf_buf);
4230+ faad_free (transf_buf);
42404231}
42414232//——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
42424233#ifdef LTP_DEC
@@ -4290,7 +4281,7 @@ void filter_bank_ltp(fb_info* fb, uint8_t window_sequence, uint8_t window_shape,
42904281 mdct(fb, windowed_buf, out_mdct, 2 * nlong);
42914282 break;
42924283 }
4293- if(windowed_buf) free (windowed_buf);
4284+ faad_free (windowed_buf);
42944285}
42954286#endif
42964287//——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
@@ -4554,8 +4545,8 @@ uint8_t reordered_spectral_data(NeAACDecStruct* hDecoder, ic_stream* ics, bitfil
45544545 #endif
45554546 ret = 0;
45564547exit:
4557- if(codeword) free (codeword);
4558- if(segment) free (segment);
4548+ faad_free (codeword);
4549+ faad_free (segment);
45594550 return ret;
45604551}
45614552//——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
@@ -4965,8 +4956,7 @@ void DCT4_32(real_t* y, real_t* x) {
49654956 y[30] = f[395] + f[396];
49664957 y[1] = f[397] - f[396];
49674958 if(f) {
4968- free(f);
4969- f = NULL;
4959+ faad_free(f);
49704960 }
49714961}
49724962#endif // SBR_DEC
@@ -5344,8 +5334,7 @@ void DST4_32(real_t* y, real_t* x) {
53445334 y[1] = MUL_C(COEF_CONST(6.7967507116736332), f[306]);
53455335 y[0] = MUL_R(REAL_CONST(20.3738781672314530), f[304]);
53465336 if(f) {
5347- free(f);
5348- f = NULL;
5337+ faad_free(f);
53495338 }
53505339}
53515340#endif // SBR_DEC
@@ -7199,7 +7188,6 @@ static uint8_t allocate_channel_pair(NeAACDecStruct* hDecoder, uint8_t channel,
71997188uint8_t reconstruct_single_channel(NeAACDecStruct* hDecoder, ic_stream* ics, element* sce, int16_t* spec_data) {
72007189 uint8_t retval = 0;
72017190 int output_channels;
7202- // real_t spec_coef[1024];
72037191 real_t* spec_coef = (real_t*)faad_malloc(1024 * sizeof(real_t));
72047192#ifdef PROFILE
72057193 int64_t count = faad_get_ts();
@@ -7225,9 +7213,12 @@ uint8_t reconstruct_single_channel(NeAACDecStruct* hDecoder, ic_stream* ics, ele
72257213 */
72267214 /* reset the allocation */
72277215 hDecoder->element_alloced[hDecoder->fr_ch_ele] = 0;
7216+ memset(&hDecoder->element_alloced[hDecoder->fr_ch_ele], 0,
7217+ sizeof(uint8_t) * (MAX_SYNTAX_ELEMENTS - hDecoder->fr_ch_ele));
7218+
72287219 hDecoder->element_output_channels[hDecoder->fr_ch_ele] = output_channels;
7229- retval = 21;
7230- goto exit;
7220+ // retval = 21;
7221+ // goto exit;
72317222 }
72327223 if (hDecoder->element_alloced[hDecoder->fr_ch_ele] == 0) {
72337224 retval = allocate_single_channel(hDecoder, sce->channel, output_channels);
@@ -7358,7 +7349,7 @@ uint8_t reconstruct_single_channel(NeAACDecStruct* hDecoder, ic_stream* ics, ele
73587349#endif
73597350 retval = 0;
73607351exit:
7361- if (spec_coef) { free(spec_coef); }
7352+ faad_free (spec_coef);
73627353 return retval;
73637354}
73647355// ——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
@@ -7531,8 +7522,8 @@ uint8_t reconstruct_channel_pair(NeAACDecStruct* hDecoder, ic_stream* ics1, ic_s
75317522#endif
75327523 retval = 0;
75337524exit:
7534- if (spec_coef1) free (spec_coef1);
7535- if (spec_coef2) free (spec_coef2);
7525+ faad_free (spec_coef1);
7526+ faad_free (spec_coef2);
75367527 return retval;
75377528}
75387529//——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
@@ -7830,6 +7821,8 @@ void decode_sce_lfe(NeAACDecStruct* hDecoder, NeAACDecFrameInfo* hInfo, bitfile*
78307821 */
78317822 if (hDecoder->element_id[hDecoder->fr_ch_ele] != INVALID_ELEMENT_ID && hDecoder->element_id[hDecoder->fr_ch_ele] != id_syn_ele) {
78327823 /* element inconsistency */
7824+ memset(&hDecoder->element_alloced[hDecoder->fr_ch_ele], 0,
7825+ sizeof(uint8_t) * (MAX_SYNTAX_ELEMENTS - hDecoder->fr_ch_ele));
78337826 hInfo->error = 21;
78347827 return;
78357828 }
@@ -7870,11 +7863,15 @@ void decode_cpe(NeAACDecStruct* hDecoder, NeAACDecFrameInfo* hInfo, bitfile* ld,
78707863 hDecoder->element_output_channels[hDecoder->fr_ch_ele] = 2;
78717864 } else if (hDecoder->element_output_channels[hDecoder->fr_ch_ele] != 2) {
78727865 /* element inconsistency */
7866+ memset(&hDecoder->element_alloced[hDecoder->fr_ch_ele], 0,
7867+ sizeof(uint8_t) * (MAX_SYNTAX_ELEMENTS - hDecoder->fr_ch_ele));
78737868 hInfo->error = 21;
78747869 return;
78757870 }
78767871 if (hDecoder->element_id[hDecoder->fr_ch_ele] != INVALID_ELEMENT_ID && hDecoder->element_id[hDecoder->fr_ch_ele] != id_syn_ele) {
78777872 /* element inconsistency */
7873+ memset(&hDecoder->element_alloced[hDecoder->fr_ch_ele], 0,
7874+ sizeof(uint8_t) * (MAX_SYNTAX_ELEMENTS - hDecoder->fr_ch_ele));
78787875 hInfo->error = 21;
78797876 return;
78807877 }
@@ -8084,8 +8081,8 @@ uint8_t single_lfe_channel_element(NeAACDecStruct* hDecoder, bitfile* ld, uint8_
80848081 if (retval > 0) goto exit;
80858082 retval = 0;
80868083exit:
8087- if (spec_data) free(spec_data );
8088- if (sce) free(sce );
8084+ faad_free(sce );
8085+ faad_free(spec_data );
80898086 return retval;
80908087}
80918088//——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
@@ -8172,15 +8169,9 @@ uint8_t channel_pair_element(NeAACDecStruct* hDecoder, bitfile* ld, uint8_t chan
81728169 if ((result = reconstruct_channel_pair(hDecoder, ics1, ics2, cpe, spec_data1, spec_data2)) > 0) { goto exit; }
81738170 result = 0;
81748171exit:
8175- if (spec_data1) {
8176- free(spec_data1);
8177- spec_data1 = NULL;
8178- }
8179- if (spec_data2) {
8180- free(spec_data2);
8181- spec_data2 = NULL;
8182- }
8183- if (cpe) free(cpe);
8172+ faad_free(spec_data1);
8173+ faad_free(spec_data2);
8174+ faad_free(cpe);
81848175 return result;
81858176}
81868177//——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
@@ -11609,8 +11600,8 @@ uint8_t ps_decode(ps_info* ps, qmf_t X_left[38][64], qmf_t X_right[38][64]) {
1160911600 /* hybrid synthesis, to rebuild the SBR QMF matrices */
1161011601 hybrid_synthesis((hyb_info*)ps->hyb, X_left, X_hybrid_left, ps->use34hybrid_bands, ps->numTimeSlotsRate);
1161111602 hybrid_synthesis((hyb_info*)ps->hyb, X_right, X_hybrid_right, ps->use34hybrid_bands, ps->numTimeSlotsRate);
11612- if(X_hybrid_left) free (X_hybrid_left);
11613- if(X_hybrid_right) free (X_hybrid_right);
11603+ faad_free (X_hybrid_left);
11604+ faad_free (X_hybrid_right);
1161411605 return 0;
1161511606}
1161611607#endif // PS_DEC
@@ -12143,7 +12134,7 @@ uint8_t sbrDecodeCoupleFrame(sbr_info* sbr, real_t* left_chan, real_t* right_cha
1214312134 #endif
1214412135 ret = 0;
1214512136exit:
12146- if (X) free (X);
12137+ faad_free (X);
1214712138 return ret;
1214812139}
1214912140#endif // #ifdef SBR_DEC
@@ -12197,7 +12188,7 @@ uint8_t sbrDecodeSingleFrame(sbr_info* sbr, real_t* channel, const uint8_t just_
1219712188 #endif
1219812189 ret = 0;
1219912190exit:
12200- if (X) free (X);
12191+ faad_free (X);
1220112192 return ret;
1220212193}
1220312194#endif // #ifdef SBR_DEC
@@ -12273,8 +12264,8 @@ uint8_t sbrDecodeSingleFramePS(sbr_info* sbr, real_t* left_channel, real_t* righ
1227312264 sbr->frame++;
1227412265 ret = 0;
1227512266exit:
12276- if (X_left) free (X_left);
12277- if (X_right) free (X_right);
12267+ faad_free (X_left);
12268+ faad_free (X_right);
1227812269 return ret;
1227912270}
1228012271 #endif // (defined(PS_DEC) || defined(DRM_PS))
@@ -12885,10 +12876,10 @@ uint8_t master_frequency_table(sbr_info* sbr, uint8_t k0, uint8_t k2, uint8_t bs
1288512876 #endif
1288612877 ret = 0;
1288712878exit:
12888- if(vDk0)free (vDk0);
12889- if(vDk1)free (vDk1);
12890- if(vk0) free (vk0);
12891- if(vk1) free (vk1);
12879+ faad_free (vDk0);
12880+ faad_free (vDk1);
12881+ faad_free (vk0);
12882+ faad_free (vk1);
1289212883 return ret;
1289312884}
1289412885#endif
@@ -13089,8 +13080,8 @@ void limiter_frequency_table(sbr_info* sbr) {
1308913080 #endif
1309013081 }
1309113082exit:
13092- if(limTable) free (limTable);
13093- if(patchBorders) free (patchBorders);
13083+ faad_free (limTable);
13084+ faad_free (patchBorders);
1309413085}
1309513086#endif // SBR_DEC
1309613087//——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
@@ -14959,10 +14950,10 @@ void hf_generation(sbr_info* sbr, qmf_t Xlow[MAX_NTSRHFG][64], qmf_t Xhigh[MAX_N
1495914950 }
1496014951 }
1496114952 if (sbr->Reset) { limiter_frequency_table(sbr); }
14962- if (alpha_0) free (alpha_0);
14963- if (alpha_1) free (alpha_1);
14953+ faad_free (alpha_0);
14954+ faad_free (alpha_1);
1496414955 #ifdef SBR_LOW_POWER
14965- if (rxx) free (rxx);
14956+ faad_free (rxx);
1496614957 #endif
1496714958}
1496814959#endif // SBR_DEC
0 commit comments