summaryrefslogtreecommitdiff
path: root/apps/codecs/libmusepack/mpc_decoder.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/libmusepack/mpc_decoder.c')
-rw-r--r--apps/codecs/libmusepack/mpc_decoder.c45
1 files changed, 18 insertions, 27 deletions
diff --git a/apps/codecs/libmusepack/mpc_decoder.c b/apps/codecs/libmusepack/mpc_decoder.c
index a5a24d6c8a..f3aff7e54b 100644
--- a/apps/codecs/libmusepack/mpc_decoder.c
+++ b/apps/codecs/libmusepack/mpc_decoder.c
@@ -87,7 +87,8 @@ mpc_uint8_t LUT5_0 [1<< 6];
87mpc_uint8_t LUT5_1 [1<< 8]; // 320 Bytes 87mpc_uint8_t LUT5_1 [1<< 8]; // 320 Bytes
88mpc_uint8_t LUT6_0 [1<< 7]; 88mpc_uint8_t LUT6_0 [1<< 7];
89mpc_uint8_t LUT6_1 [1<< 7]; // 256 Bytes 89mpc_uint8_t LUT6_1 [1<< 7]; // 256 Bytes
90mpc_uint8_t LUT7_0 [1<< 8];mpc_uint8_t LUT7_1 [1<< 8]; // 512 Bytes 90mpc_uint8_t LUT7_0 [1<< 8];
91mpc_uint8_t LUT7_1 [1<< 8]; // 512 Bytes
91mpc_uint8_t LUTDSCF [1<< 6]; // 64 Bytes = 2976 Bytes 92mpc_uint8_t LUTDSCF [1<< 6]; // 64 Bytes = 2976 Bytes
92 93
93//------------------------------------------------------------------------------ 94//------------------------------------------------------------------------------
@@ -95,9 +96,6 @@ mpc_uint8_t LUTDSCF [1<< 6]; // 64 Bytes = 2976 Bytes
95//------------------------------------------------------------------------------ 96//------------------------------------------------------------------------------
96enum 97enum
97 { 98 {
98 EQ_TAP = 13, // length of FIR filter for EQ
99 DELAY = ((EQ_TAP + 1) / 2), // delay of FIR
100 FIR_BANDS = 4, // number of subbands to be FIR filtered
101 MEMSIZE = MPC_DECODER_MEMSIZE, // overall buffer size 99 MEMSIZE = MPC_DECODER_MEMSIZE, // overall buffer size
102 MEMSIZE2 = (MEMSIZE/2), // size of one buffer 100 MEMSIZE2 = (MEMSIZE/2), // size of one buffer
103 MEMMASK = (MEMSIZE-1) 101 MEMMASK = (MEMSIZE-1)
@@ -226,6 +224,7 @@ mpc_decoder_make_huffman_lookup(
226 return; 224 return;
227} 225}
228 226
227#ifdef MPC_SUPPORT_SV456
229// decode SCFI-bundle (sv4,5,6) 228// decode SCFI-bundle (sv4,5,6)
230static void 229static void
231mpc_decoder_scfi_bundle_read( 230mpc_decoder_scfi_bundle_read(
@@ -273,6 +272,7 @@ mpc_decoder_huffman_decode(mpc_decoder *d, const HuffmanTyp *Table)
273 272
274 return Table->Value; 273 return Table->Value;
275} 274}
275#endif
276 276
277// faster huffman through previewing less bits 277// faster huffman through previewing less bits
278// works with maximum lengths up to 10 278// works with maximum lengths up to 10
@@ -391,28 +391,26 @@ mpc_decoder_reset_globals(mpc_decoder *d)
391{ 391{
392 mpc_decoder_reset_bitstream_decode(d); 392 mpc_decoder_reset_bitstream_decode(d);
393 393
394 d->DecodedFrames = 0; 394 d->DecodedFrames = 0;
395 d->SeekTableIndex = 0; 395 d->SeekTableIndex = 0;
396 d->MaxDecodedFrames = 0; 396 d->MaxDecodedFrames = 0;
397 d->StreamVersion = 0; 397 d->StreamVersion = 0;
398 d->MS_used = 0; 398 d->MS_used = 0;
399 399
400 memset(d->Y_L , 0, sizeof Y_L ); 400 memset(d->Y_L , 0, sizeof Y_L );
401 memset(d->Y_R , 0, sizeof Y_R ); 401 memset(d->Y_R , 0, sizeof Y_R );
402 memset(d->SCF_Index_L , 0, sizeof d->SCF_Index_L ); 402 memset(d->SCF_Index_L , 0, sizeof d->SCF_Index_L);
403 memset(d->SCF_Index_R , 0, sizeof d->SCF_Index_R ); 403 memset(d->SCF_Index_R , 0, sizeof d->SCF_Index_R);
404 memset(d->Res_L , 0, sizeof d->Res_L ); 404 memset(d->Res_L , 0, sizeof d->Res_L );
405 memset(d->Res_R , 0, sizeof d->Res_R ); 405 memset(d->Res_R , 0, sizeof d->Res_R );
406 memset(d->SCFI_L , 0, sizeof d->SCFI_L ); 406 memset(d->SCFI_L , 0, sizeof d->SCFI_L );
407 memset(d->SCFI_R , 0, sizeof d->SCFI_R ); 407 memset(d->SCFI_R , 0, sizeof d->SCFI_R );
408#ifdef MPC_SUPPORT_SV456 408#ifdef MPC_SUPPORT_SV456
409 memset(d->DSCF_Flag_L , 0, sizeof d->DSCF_Flag_L ); 409 memset(d->DSCF_Flag_L , 0, sizeof d->DSCF_Flag_L);
410 memset(d->DSCF_Flag_R , 0, sizeof d->DSCF_Flag_R ); 410 memset(d->DSCF_Flag_R , 0, sizeof d->DSCF_Flag_R);
411#endif 411#endif
412 //memset(d->DSCF_Reference_L, 0, sizeof d->DSCF_Reference_L ); 412 memset(d->Q , 0, sizeof d->Q );
413 //memset(d->DSCF_Reference_R, 0, sizeof d->DSCF_Reference_R ); 413 memset(d->MS_Flag , 0, sizeof d->MS_Flag );
414 memset(d->Q , 0, sizeof d->Q );
415 memset(d->MS_Flag , 0, sizeof d->MS_Flag );
416} 414}
417 415
418mpc_uint32_t 416mpc_uint32_t
@@ -856,7 +854,6 @@ mpc_decoder_read_bitstream_sv6(mpc_decoder *d)
856 /*********** DSCF ************/ 854 /*********** DSCF ************/
857 if (d->DSCF_Flag_L[n]==1) 855 if (d->DSCF_Flag_L[n]==1)
858 { 856 {
859 //L[2] = d->DSCF_Reference_L[n];
860 switch (d->SCFI_L[n]) 857 switch (d->SCFI_L[n])
861 { 858 {
862 case 3: 859 case 3:
@@ -914,12 +911,9 @@ mpc_decoder_read_bitstream_sv6(mpc_decoder *d)
914 break; 911 break;
915 } 912 }
916 } 913 }
917 // update Reference for DSCF
918 //d->DSCF_Reference_L[n] = L[2];
919 } 914 }
920 if (*ResR) 915 if (*ResR)
921 { 916 {
922 //R[2] = d->DSCF_Reference_R[n];
923 /*********** DSCF ************/ 917 /*********** DSCF ************/
924 if (d->DSCF_Flag_R[n]==1) 918 if (d->DSCF_Flag_R[n]==1)
925 { 919 {
@@ -1086,7 +1080,6 @@ mpc_decoder_read_bitstream_sv7(mpc_decoder *d, mpc_bool_t fastSeeking)
1086 for (n=0; n<=Max_used_Band; ++n, ++ResL, ++ResR, L+=3, R+=3) { 1080 for (n=0; n<=Max_used_Band; ++n, ++ResL, ++ResR, L+=3, R+=3) {
1087 if (*ResL) 1081 if (*ResL)
1088 { 1082 {
1089 //L[2] = d->DSCF_Reference_L[n];
1090 switch (d->SCFI_L[n]) 1083 switch (d->SCFI_L[n])
1091 { 1084 {
1092 case 1: 1085 case 1:
@@ -1663,8 +1656,6 @@ void mpc_decoder_reset_state(mpc_decoder *d) {
1663 memset(d->DSCF_Flag_L , 0, sizeof d->DSCF_Flag_L ); 1656 memset(d->DSCF_Flag_L , 0, sizeof d->DSCF_Flag_L );
1664 memset(d->DSCF_Flag_R , 0, sizeof d->DSCF_Flag_R ); 1657 memset(d->DSCF_Flag_R , 0, sizeof d->DSCF_Flag_R );
1665#endif 1658#endif
1666 //memset(d->DSCF_Reference_L, 0, sizeof d->DSCF_Reference_L );
1667 //memset(d->DSCF_Reference_R, 0, sizeof d->DSCF_Reference_R );
1668 memset(d->Q , 0, sizeof d->Q ); 1659 memset(d->Q , 0, sizeof d->Q );
1669 memset(d->MS_Flag , 0, sizeof d->MS_Flag ); 1660 memset(d->MS_Flag , 0, sizeof d->MS_Flag );
1670 1661