private void vorbis_encode_global_stereo(highlevel_encode_setup hi, adj_stereo[] p) { float s = hi.stereo_point_setting; int i; int is = new Float(s).intValue(); float ds = s - is; codec_setup_info ci = vi.codec_setup; vorbis_info_psy_global g = ci.psy_g_param; if (p != null) { // memcpy(g.coupling_prepointamp, p[is].pre, sizeof(*p[is].pre)*PACKETBLOBS); // memcpy(g.coupling_postpointamp, p[is].post, sizeof(*p[is].post)*PACKETBLOBS); g.coupling_prepointamp = (int[]) p[is].pre.clone(); g.coupling_postpointamp = (int[]) p[is].post.clone(); if (hi.managed != 0) { // interpolate the kHz threshholds for (i = 0; i < PACKETBLOBS; i++) { float kHz = new Double(p[is].kHz[i] * (1. - ds) + p[is + 1].kHz[i] * ds).floatValue(); g.coupling_pointlimit[0][i] = new Double(kHz * 1000. / vi.rate * ci.blocksizes[0]).intValue(); g.coupling_pointlimit[1][i] = new Double(kHz * 1000. / vi.rate * ci.blocksizes[1]).intValue(); g.coupling_pkHz[i] = new Float(kHz).intValue(); kHz = new Double(p[is].lowpasskHz[i] * (1. - ds) + p[is + 1].lowpasskHz[i] * ds) .floatValue(); g.sliding_lowpass[0][i] = new Double(kHz * 1000. / vi.rate * ci.blocksizes[0]).intValue(); g.sliding_lowpass[1][i] = new Double(kHz * 1000. / vi.rate * ci.blocksizes[1]).intValue(); } } else { float kHz = new Double(p[is].kHz[PACKETBLOBS / 2] * (1. - ds) + p[is + 1].kHz[PACKETBLOBS / 2] * ds) .floatValue(); for (i = 0; i < PACKETBLOBS; i++) { g.coupling_pointlimit[0][i] = new Double(kHz * 1000. / vi.rate * ci.blocksizes[0]).intValue(); g.coupling_pointlimit[1][i] = new Double(kHz * 1000. / vi.rate * ci.blocksizes[1]).intValue(); g.coupling_pkHz[i] = new Float(kHz).intValue(); } kHz = new Double( p[is].lowpasskHz[PACKETBLOBS / 2] * (1. - ds) + p[is + 1].lowpasskHz[PACKETBLOBS / 2] * ds) .floatValue(); for (i = 0; i < PACKETBLOBS; i++) { g.sliding_lowpass[0][i] = new Double(kHz * 1000. / vi.rate * ci.blocksizes[0]).intValue(); g.sliding_lowpass[1][i] = new Double(kHz * 1000. / vi.rate * ci.blocksizes[1]).intValue(); } } } else { for (i = 0; i < PACKETBLOBS; i++) { g.sliding_lowpass[0][i] = ci.blocksizes[0]; g.sliding_lowpass[1][i] = ci.blocksizes[1]; } } }