Lines Matching +full:8 +full:- +full:ch
4 * see LACK-OF-WARRANTY information below.
20 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
45 #define lsbshortldi(x,p) { (x)=((short)((int)(p)[0] + ((int)(p)[1]<<8))); (p) += 2; }
51 /* these are step-size adjust factors, where
66 { 512,-256},
70 { 460,-208},
71 { 392,-232}
87 step = state->step; in AdpcmDecode()
90 nstep = (stepAdjustTable[c] * step) >> 8; in AdpcmDecode()
91 state->step = (nstep < 16)? 16:nstep; in AdpcmDecode()
96 ((sample1 * state->coef[0]) + in AdpcmDecode()
97 (sample2 * state->coef[1])) >> 8; in AdpcmDecode()
99 c -= (c & 0x08) << 1; in AdpcmDecode()
103 else if (sample < -0x8000) sample = -0x8000; in AdpcmDecode()
120 unsigned ch; in lsx_ms_adpcm_block_expand_i() local
124 /* Read the four-byte header for each channel */ in lsx_ms_adpcm_block_expand_i()
126 for (ch = 0; ch < chans; ch++) { in lsx_ms_adpcm_block_expand_i()
132 state[ch].coef[0] = coef[(int)bpred*2+0]; in lsx_ms_adpcm_block_expand_i()
133 state[ch].coef[1] = coef[(int)bpred*2+1]; in lsx_ms_adpcm_block_expand_i()
136 for (ch = 0; ch < chans; ch++) in lsx_ms_adpcm_block_expand_i()
137 lsbshortldi(state[ch].step, ip); in lsx_ms_adpcm_block_expand_i()
140 for (ch = 0; ch < chans; ch++) in lsx_ms_adpcm_block_expand_i()
141 lsbshortldi(obuff[chans+ch], ip); in lsx_ms_adpcm_block_expand_i()
144 for (ch = 0; ch < chans; ch++) in lsx_ms_adpcm_block_expand_i()
145 lsbshortldi(obuff[ch], ip); in lsx_ms_adpcm_block_expand_i()
152 /* already have 1st 2 samples from block-header */ in lsx_ms_adpcm_block_expand_i()
157 while (op < top) { /*** N.B. Without int casts, crashes on 64-bit arch ***/ in lsx_ms_adpcm_block_expand_i()
160 *op++ = AdpcmDecode(b >> 4, state+ch2, tmp[-(int)chans], tmp[-(int)(2*chans)]); in lsx_ms_adpcm_block_expand_i()
163 *op++ = AdpcmDecode(b&0x0f, state+ch2, tmp[-(int)chans], tmp[-(int)(2*chans)]); in lsx_ms_adpcm_block_expand_i()
171 unsigned ch, /* channel number to encode, REQUIRE 0 <= ch < chans */ in AdpcmMashS() argument
187 ip = ibuff + ch; /* point ip to 1st input sample for this channel */ in AdpcmMashS()
191 d = *ip - v1; ip += chans; /* 1st input sample for this channel */ in AdpcmMashS()
193 d = *ip - v0; ip += chans; /* 2nd input sample for this channel */ in AdpcmMashS()
201 op += 2*ch; /* channel's stepsize */ in AdpcmMashS()
202 op[0] = step; op[1] = step>>8; in AdpcmMashS()
204 op[0] = v0; op[1] = v0>>8; in AdpcmMashS()
206 op[0] = v1; op[1] = v1>>8; in AdpcmMashS()
208 ox = 4*ch; in AdpcmMashS()
214 vlin = (v0 * coef[0] + v1 * coef[1]) >> 8; in AdpcmMashS()
215 d3 = *ip - vlin; /* difference between linear prediction and current sample */ in AdpcmMashS()
222 c -= 8; in AdpcmMashS()
223 dp = c * step; /* quantized estimate of samp - vlin */ in AdpcmMashS()
228 if (v0<-0x8000) v0 = -0x8000; in AdpcmMashS()
231 d3 = *ip - v0; in AdpcmMashS()
232 d2 += d3*d3; /* update square-error */ in AdpcmMashS()
242 step = (stepAdjustTable[c] * step) >> 8; in AdpcmMashS()
247 d2 /= n; /* be sure it's non-negative */ in AdpcmMashS()
248 lsx_debug_more("ch%d: st %d->%d, d %.1f\n", ch, *iostep, step, sqrt(d2)); in AdpcmMashS()
254 unsigned ch, /* channel number to encode, REQUIRE 0 <= ch < chans */ in AdpcmMashChannel() argument
268 v[1] = ip[ch]; in AdpcmMashChannel()
269 v[0] = ip[ch+chans]; in AdpcmMashChannel()
273 * beginning with last step-value, and with slightly in AdpcmMashChannel()
274 * forward-adjusted step-value, taking best of the 14 in AdpcmMashChannel()
279 … d0=AdpcmMashS(ch, chans, v, lsx_ms_adpcm_i_coef[k], ip, n, &ss, NULL); /* with step s0 */ in AdpcmMashChannel()
282 AdpcmMashS(ch, chans, v, lsx_ms_adpcm_i_coef[k], ip, n0, &s1, NULL); in AdpcmMashChannel()
285 … d1=AdpcmMashS(ch, chans, v, lsx_ms_adpcm_i_coef[k], ip, n, &ss, NULL); /* with step s1 */ in AdpcmMashChannel()
299 AdpcmMashS(ch, chans, v, lsx_ms_adpcm_i_coef[kmin], ip, n, st, obuff); in AdpcmMashChannel()
300 obuff[ch] = kmin; in AdpcmMashChannel()
309 int blockAlign /* >= 7*chans + chans*(n-2)/2.0 */ in lsx_ms_adpcm_block_mash_i()
312 unsigned ch; in lsx_ms_adpcm_block_mash_i() local
320 for (ch=0; ch<chans; ch++) in lsx_ms_adpcm_block_mash_i()
321 AdpcmMashChannel(ch, chans, ip, n, st+ch, obuff); in lsx_ms_adpcm_block_mash_i()
348 m -= 7*chans; /* bytes beyond block-header */ in lsx_ms_adpcm_samples_in()
364 n += (((size_t)samplesPerBlock-2)*chans + 1)/2; in lsx_ms_adpcm_bytes_per_block()