[BACK]Return to dsp.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / aucat

Diff for /src/usr.bin/aucat/dsp.c between version 1.1 and 1.2

version 1.1, 2015/01/21 08:43:55 version 1.2, 2015/05/04 12:51:13
Line 604 
Line 604 
         s = (x >> 31);          s = (x >> 31);
         e = (x >> 23) & 0xff;          e = (x >> 23) & 0xff;
         m = (x << 8) | 0x80000000;          m = (x << 8) | 0x80000000;
         if (e < 127 - 24)  
           /*
            * f32 exponent is (e - 127) and the point is after the 31-th
            * bit, thus the shift is:
            *
            * 31 - (BITS - 1) - (e - 127)
            *
            * to ensure output is in the 0..(2^BITS)-1 range, the minimum
            * shift is 31 - (BITS - 1), and maximum shift is 31
            */
           if (e < 127 - (ADATA_BITS - 1))
                 y = 0;                  y = 0;
         else if (e > 127 - 1)          else if (e > 127)
                 y = ADATA_UNIT - 1;                  y = ADATA_UNIT - 1;
         else          else
                 y = m >> (127 + (32 - ADATA_BITS) - e);                  y = m >> (127 + (32 - ADATA_BITS) - e);

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2