first commit
Build AsminVoicechat / prepare-release (push) Successful in 14s
Build AsminVoicechat / build-and-test (17) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (18) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (19) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (20) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (21) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (22) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (23) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (24) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (25) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (26) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (27-ea) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (16) (push) Canceled after 38s

This commit is contained in:
asminme committed 2026-10-24 15:18:03 +02:00
commit bbccd4a815
454 files changed
+45050

No files matched your search

@@ -0,0 +1,80 @@
/*
* Decompiled with CFR 0.152.
*/
package de.maxhenkel.voicechat.concentus;
import de.maxhenkel.voicechat.concentus.BoxedValueInt;
import de.maxhenkel.voicechat.concentus.BurgModified;
import de.maxhenkel.voicechat.concentus.Filters;
import de.maxhenkel.voicechat.concentus.Inlines;
import de.maxhenkel.voicechat.concentus.NLSF;
import de.maxhenkel.voicechat.concentus.SilkChannelEncoder;
import de.maxhenkel.voicechat.concentus.SumSqrShift;
class FindLPC {
FindLPC() {
}
static void silk_find_LPC(SilkChannelEncoder psEncC, short[] NLSF_Q15, short[] x, int minInvGain_Q30) {
int[] a_Q16 = new int[16];
BoxedValueInt res_nrg0 = new BoxedValueInt(0);
BoxedValueInt res_nrg1 = new BoxedValueInt(0);
BoxedValueInt rshift0 = new BoxedValueInt(0);
BoxedValueInt rshift1 = new BoxedValueInt(0);
BoxedValueInt scratch_box1 = new BoxedValueInt(0);
BoxedValueInt scratch_box2 = new BoxedValueInt(0);
int[] a_tmp_Q16 = new int[16];
short[] a_tmp_Q12 = new short[16];
short[] NLSF0_Q15 = new short[16];
int subfr_length = psEncC.subfr_length + psEncC.predictLPCOrder;
psEncC.indices.NLSFInterpCoef_Q2 = (byte)4;
BurgModified.silk_burg_modified(scratch_box1, scratch_box2, a_Q16, x, 0, minInvGain_Q30, subfr_length, psEncC.nb_subfr, psEncC.predictLPCOrder);
int res_nrg = scratch_box1.Val;
int res_nrg_Q = scratch_box2.Val;
if (psEncC.useInterpolatedNLSFs != 0 && psEncC.first_frame_after_reset == 0 && psEncC.nb_subfr == 4) {
BurgModified.silk_burg_modified(scratch_box1, scratch_box2, a_tmp_Q16, x, 2 * subfr_length, minInvGain_Q30, subfr_length, 2, psEncC.predictLPCOrder);
int res_tmp_nrg = scratch_box1.Val;
int res_tmp_nrg_Q = scratch_box2.Val;
int shift = res_tmp_nrg_Q - res_nrg_Q;
if (shift >= 0) {
if (shift < 32) {
res_nrg -= Inlines.silk_RSHIFT(res_tmp_nrg, shift);
}
} else {
Inlines.OpusAssert(shift > -32);
res_nrg = Inlines.silk_RSHIFT(res_nrg, -shift) - res_tmp_nrg;
res_nrg_Q = res_tmp_nrg_Q;
}
NLSF.silk_A2NLSF(NLSF_Q15, a_tmp_Q16, psEncC.predictLPCOrder);
short[] LPC_res = new short[2 * subfr_length];
for (int k = 3; k >= 0; --k) {
int res_nrg_interp_Q;
Inlines.silk_interpolate(NLSF0_Q15, psEncC.prev_NLSFq_Q15, NLSF_Q15, k, psEncC.predictLPCOrder);
NLSF.silk_NLSF2A(a_tmp_Q12, NLSF0_Q15, psEncC.predictLPCOrder);
Filters.silk_LPC_analysis_filter(LPC_res, 0, x, 0, a_tmp_Q12, 0, 2 * subfr_length, psEncC.predictLPCOrder);
SumSqrShift.silk_sum_sqr_shift(res_nrg0, rshift0, LPC_res, psEncC.predictLPCOrder, subfr_length - psEncC.predictLPCOrder);
SumSqrShift.silk_sum_sqr_shift(res_nrg1, rshift1, LPC_res, psEncC.predictLPCOrder + subfr_length, subfr_length - psEncC.predictLPCOrder);
shift = rshift0.Val - rshift1.Val;
if (shift >= 0) {
res_nrg1.Val = Inlines.silk_RSHIFT(res_nrg1.Val, shift);
res_nrg_interp_Q = 0 - rshift0.Val;
} else {
res_nrg0.Val = Inlines.silk_RSHIFT(res_nrg0.Val, 0 - shift);
res_nrg_interp_Q = 0 - rshift1.Val;
}
int res_nrg_interp = Inlines.silk_ADD32(res_nrg0.Val, res_nrg1.Val);
shift = res_nrg_interp_Q - res_nrg_Q;
boolean isInterpLower = shift >= 0 ? Inlines.silk_RSHIFT(res_nrg_interp, shift) < res_nrg : (-shift < 32 ? res_nrg_interp < Inlines.silk_RSHIFT(res_nrg, -shift) : false);
if (!isInterpLower) continue;
res_nrg = res_nrg_interp;
res_nrg_Q = res_nrg_interp_Q;
psEncC.indices.NLSFInterpCoef_Q2 = (byte)k;
}
}
if (psEncC.indices.NLSFInterpCoef_Q2 == 4) {
NLSF.silk_A2NLSF(NLSF_Q15, a_Q16, psEncC.predictLPCOrder);
}
Inlines.OpusAssert(psEncC.indices.NLSFInterpCoef_Q2 == 4 || psEncC.useInterpolatedNLSFs != 0 && psEncC.first_frame_after_reset == 0 && psEncC.nb_subfr == 4);
}
}