Changeset 6 for trunk/src/mpc_decoder.c
- Timestamp:
- 08/12/06 16:24:59 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/mpc_decoder.c
r3 r6 312 312 memset(d->Q , 0, sizeof d->Q ); 313 313 memset(d->MS_Flag , 0, sizeof d->MS_Flag ); 314 } 315 316 mpc_uint32_t 317 mpc_decoder_decode_frame(mpc_decoder *d, mpc_uint32_t *in_buffer, 318 mpc_uint32_t in_len, MPC_SAMPLE_FORMAT *out_buffer) 319 { 320 unsigned int i; 321 mpc_decoder_reset_bitstream_decode(d); 322 if (in_len > sizeof(d->Speicher)) in_len = sizeof(d->Speicher); 323 memcpy(d->Speicher, in_buffer, in_len); 324 #ifdef MPC_LITTLE_ENDIAN 325 for (i = 0; i < (in_len + 3) / 4; i++) 326 d->Speicher[i] = swap32(d->Speicher[i]); 327 #endif 328 d->dword = d->Speicher[0]; 329 switch (d->StreamVersion) { 330 case 0x04: 331 case 0x05: 332 case 0x06: 333 mpc_decoder_read_bitstream_sv6(d); 334 break; 335 case 0x07: 336 case 0x17: 337 mpc_decoder_read_bitstream_sv7(d); 338 break; 339 default: 340 return (mpc_uint32_t)(-1); 341 } 342 mpc_decoder_requantisierung(d, d->Max_Band); 343 mpc_decoder_synthese_filter_float(d, out_buffer); 344 return mpc_decoder_bits_read(d); 314 345 } 315 346 … … 865 896 { 866 897 idx = mpc_decoder_huffman_decode_fast(d, d->HuffHdr); 867 *ResL = (idx!=4) ? *(ResL-1) + idx : mpc_decoder_bitstream_read(d, 4);898 *ResL = (idx!=4) ? *(ResL-1) + idx : (int) mpc_decoder_bitstream_read(d, 4); 868 899 869 900 idx = mpc_decoder_huffman_decode_fast(d, d->HuffHdr); 870 *ResR = (idx!=4) ? *(ResR-1) + idx : mpc_decoder_bitstream_read(d, 4);901 *ResR = (idx!=4) ? *(ResR-1) + idx : (int) mpc_decoder_bitstream_read(d, 4); 871 902 872 903 if (d->MS_used && !(*ResL==0 && *ResR==0)) { … … 902 933 case 1: 903 934 idx = mpc_decoder_huffman_decode_fast(d, d->HuffDSCF); 904 L[0] = (idx!=8) ? L[2] + idx : mpc_decoder_bitstream_read(d, 6);935 L[0] = (idx!=8) ? L[2] + idx : (int) mpc_decoder_bitstream_read(d, 6); 905 936 idx = mpc_decoder_huffman_decode_fast(d, d->HuffDSCF); 906 L[1] = (idx!=8) ? L[0] + idx : mpc_decoder_bitstream_read(d, 6);937 L[1] = (idx!=8) ? L[0] + idx : (int) mpc_decoder_bitstream_read(d, 6); 907 938 L[2] = L[1]; 908 939 break; 909 940 case 3: 910 941 idx = mpc_decoder_huffman_decode_fast(d, d->HuffDSCF); 911 L[0] = (idx!=8) ? L[2] + idx : mpc_decoder_bitstream_read(d, 6);942 L[0] = (idx!=8) ? L[2] + idx : (int) mpc_decoder_bitstream_read(d, 6); 912 943 L[1] = L[0]; 913 944 L[2] = L[1]; … … 915 946 case 2: 916 947 idx = mpc_decoder_huffman_decode_fast(d, d->HuffDSCF); 917 L[0] = (idx!=8) ? L[2] + idx : mpc_decoder_bitstream_read(d, 6);948 L[0] = (idx!=8) ? L[2] + idx : (int) mpc_decoder_bitstream_read(d, 6); 918 949 L[1] = L[0]; 919 950 idx = mpc_decoder_huffman_decode_fast(d, d->HuffDSCF); 920 L[2] = (idx!=8) ? L[1] + idx : mpc_decoder_bitstream_read(d, 6);951 L[2] = (idx!=8) ? L[1] + idx : (int) mpc_decoder_bitstream_read(d, 6); 921 952 break; 922 953 case 0: 923 954 idx = mpc_decoder_huffman_decode_fast(d, d->HuffDSCF); 924 L[0] = (idx!=8) ? L[2] + idx : mpc_decoder_bitstream_read(d, 6);955 L[0] = (idx!=8) ? L[2] + idx : (int) mpc_decoder_bitstream_read(d, 6); 925 956 idx = mpc_decoder_huffman_decode_fast(d, d->HuffDSCF); 926 L[1] = (idx!=8) ? L[0] + idx : mpc_decoder_bitstream_read(d, 6);957 L[1] = (idx!=8) ? L[0] + idx : (int) mpc_decoder_bitstream_read(d, 6); 927 958 idx = mpc_decoder_huffman_decode_fast(d, d->HuffDSCF); 928 L[2] = (idx!=8) ? L[1] + idx : mpc_decoder_bitstream_read(d, 6);959 L[2] = (idx!=8) ? L[1] + idx : (int) mpc_decoder_bitstream_read(d, 6); 929 960 break; 930 961 default: … … 942 973 case 1: 943 974 idx = mpc_decoder_huffman_decode_fast(d, d->HuffDSCF); 944 R[0] = (idx!=8) ? R[2] + idx : mpc_decoder_bitstream_read(d, 6);975 R[0] = (idx!=8) ? R[2] + idx : (int) mpc_decoder_bitstream_read(d, 6); 945 976 idx = mpc_decoder_huffman_decode_fast(d, d->HuffDSCF); 946 R[1] = (idx!=8) ? R[0] + idx : mpc_decoder_bitstream_read(d, 6);977 R[1] = (idx!=8) ? R[0] + idx : (int) mpc_decoder_bitstream_read(d, 6); 947 978 R[2] = R[1]; 948 979 break; 949 980 case 3: 950 981 idx = mpc_decoder_huffman_decode_fast(d, d->HuffDSCF); 951 R[0] = (idx!=8) ? R[2] + idx : mpc_decoder_bitstream_read(d, 6);982 R[0] = (idx!=8) ? R[2] + idx : (int) mpc_decoder_bitstream_read(d, 6); 952 983 R[1] = R[0]; 953 984 R[2] = R[1]; … … 955 986 case 2: 956 987 idx = mpc_decoder_huffman_decode_fast(d, d->HuffDSCF); 957 R[0] = (idx!=8) ? R[2] + idx : mpc_decoder_bitstream_read(d, 6);988 R[0] = (idx!=8) ? R[2] + idx : (int) mpc_decoder_bitstream_read(d, 6); 958 989 R[1] = R[0]; 959 990 idx = mpc_decoder_huffman_decode_fast(d, d->HuffDSCF); 960 R[2] = (idx!=8) ? R[1] + idx : mpc_decoder_bitstream_read(d, 6);991 R[2] = (idx!=8) ? R[1] + idx : (int) mpc_decoder_bitstream_read(d, 6); 961 992 break; 962 993 case 0: 963 994 idx = mpc_decoder_huffman_decode_fast(d, d->HuffDSCF); 964 R[0] = (idx!=8) ? R[2] + idx : mpc_decoder_bitstream_read(d, 6);995 R[0] = (idx!=8) ? R[2] + idx : (int) mpc_decoder_bitstream_read(d, 6); 965 996 idx = mpc_decoder_huffman_decode_fast(d, d->HuffDSCF); 966 R[1] = (idx!=8) ? R[0] + idx : mpc_decoder_bitstream_read(d, 6);997 R[1] = (idx!=8) ? R[0] + idx : (int) mpc_decoder_bitstream_read(d, 6); 967 998 idx = mpc_decoder_huffman_decode_fast(d, d->HuffDSCF); 968 R[2] = (idx!=8) ? R[1] + idx : mpc_decoder_bitstream_read(d, 6);999 R[2] = (idx!=8) ? R[1] + idx : (int) mpc_decoder_bitstream_read(d, 6); 969 1000 break; 970 1001 default: … … 1175 1206 } 1176 1207 1177 staticvoid mpc_decoder_set_streaminfo(mpc_decoder *d, mpc_streaminfo *si)1208 void mpc_decoder_set_streaminfo(mpc_decoder *d, mpc_streaminfo *si) 1178 1209 { 1179 1210 mpc_decoder_reset_synthesis(d); … … 1255 1286 { 1256 1287 mpc_uint32_t fpos = 0; 1288 (void) StreamVersion; 1257 1289 switch ( d->StreamVersion ) { // setting position to the beginning of the data-bitstream 1258 1290 case 0x04: fpos = 48; break;
Note: See TracChangeset
for help on using the changeset viewer.