unsafe-libopus 0.2.0

libopus transpiled to rust by c2rust
Documentation
use crate::silk::structs::silk_NLSF_CB_struct;

pub fn silk_NLSF_unpack(
    ec_ix: &mut [i16],
    pred_Q8: &mut [u8],
    psNLSF_CB: &silk_NLSF_CB_struct,
    CB1_index: i32,
) {
    let mut entry: u8 = 0;
    let mut ec_sel_ptr = &psNLSF_CB.ec_sel[(CB1_index * psNLSF_CB.order as i32 / 2) as usize..];
    let mut i = 0usize;
    while i < psNLSF_CB.order as usize {
        entry = ec_sel_ptr[0];
        ec_sel_ptr = &ec_sel_ptr[1..];
        ec_ix[i] = ((entry as i32 >> 1 & 7) as i16 as i32 * (2 * 4 + 1) as i16 as i32) as i16;
        pred_Q8[i] = psNLSF_CB.pred_Q8[i + (entry as usize & 1) * (psNLSF_CB.order as usize - 1)];
        ec_ix[i + 1] = ((entry as i32 >> 5 & 7) as i16 as i32 * (2 * 4 + 1) as i16 as i32) as i16;
        pred_Q8[i + 1] =
            psNLSF_CB.pred_Q8[i + (entry as usize >> 4 & 1) * (psNLSF_CB.order as usize - 1) + 1];
        i += 2;
    }
}