Changeset 299


Ignore:
Timestamp:
04/27/07 12:50:17 (18 years ago)
Author:
r2d
Message:
  • moved some MPC_FIXED_POINT defines from mpcdec_math.h to mpc_types.h
  • added MPC_FIXED_POINT to mpcdec to test all this
Location:
libmpc/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • libmpc/trunk/include/mpc/mpc_types.h

    r204 r299  
    9393
    9494#ifdef MPC_FIXED_POINT
     95# define MPC_FIXED_POINT_SHIFT 16
     96# define MPC_FIXED_POINT_FRACTPART 14
     97# define MPC_FIXED_POINT_SCALE_SHIFT (MPC_FIXED_POINT_SHIFT + MPC_FIXED_POINT_FRACTPART)
     98# define MPC_FIXED_POINT_SCALE (1 << (MPC_FIXED_POINT_SCALE_SHIFT - 1))
    9599typedef mpc_int32_t MPC_SAMPLE_FORMAT;
    96100#else
  • libmpc/trunk/libmpcdec/mpcdec_math.h

    r262 r299  
    4646#endif
    4747
    48 #define MPC_FIXED_POINT_SHIFT 16
    49 
    50 
    5148#ifdef MPC_FIXED_POINT
    5249
     
    5653#endif
    5754
    58 #define MPC_FIXED_POINT_SCALE_SHIFT (MPC_FIXED_POINT_SHIFT + MPC_FIXED_POINT_FRACTPART)
    59 #define MPC_FIXED_POINT_SCALE (1 << (MPC_FIXED_POINT_SCALE_SHIFT - 1))
    60 
    6155//in fixedpoint mode, results in decode output buffer are in -MPC_FIXED_POINT_SCALE ... MPC_FIXED_POINT_SCALE range
    62 
    63 #define MPC_FIXED_POINT_FRACTPART 14
    6456
    6557typedef mpc_int64_t MPC_SAMPLE_FORMAT_MULTIPLY;
  • libmpc/trunk/mpcdec/mpcdec.c

    r279 r299  
    112112        sum           += end - begin;
    113113
    114         if(is_wav_output)
     114                if(is_wav_output) {
     115#ifdef MPC_FIXED_POINT
     116                        mpc_int16_t tmp_buff[MPC_DECODER_BUFFER_LENGTH];
     117                        int i;
     118                        for( i = 0; i < MPC_DECODER_BUFFER_LENGTH; i++) {
     119                                int tmp = sample_buffer[i] >> MPC_FIXED_POINT_FRACTPART;
     120                                if (tmp > ((1 << 15) - 1)) tmp = ((1 << 15) - 1);
     121                                if (tmp < -(1 << 15)) tmp = -(1 << 15);
     122                                tmp_buff[i] = tmp;
     123                        }
     124                        if(waveformat_output_process_int16(&wav_output, tmp_buff, frame.samples*2) < 0)
     125#else
    115126            if(waveformat_output_process_float32(&wav_output, sample_buffer, frame.samples*2) < 0)
     127#endif
    116128                break;
     129                }
    117130    }
    118131
Note: See TracChangeset for help on using the changeset viewer.