Skip to content

Commit 0a77c3e

Browse files
committed
refactor: replace pointers to OpusDecoder with mutable references
1 parent ccafed9 commit 0a77c3e

17 files changed

+309
-293
lines changed

src/celt/bands.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1976,7 +1976,7 @@ pub unsafe fn quant_all_bands(
19761976
);
19771977
}
19781978
nstart_bytes = ec_save.offs as i32;
1979-
nend_bytes = (*ec).storage as i32;
1979+
nend_bytes = ec.storage as i32;
19801980
bytes_buf = ec.buf.as_ptr().offset(nstart_bytes as isize);
19811981
save_bytes = nend_bytes - nstart_bytes;
19821982
memcpy(

src/celt/celt_decoder.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1032,7 +1032,7 @@ pub unsafe fn celt_decode_with_ec(
10321032
}
10331033
if silence != 0 {
10341034
tell = len * 8;
1035-
(*dec).nbits_total += tell - ec_tell(dec);
1035+
dec.nbits_total += tell - ec_tell(dec);
10361036
}
10371037
postfilter_gain = 0 as opus_val16;
10381038
postfilter_pitch = 0;
@@ -1411,7 +1411,7 @@ pub unsafe fn celt_decode_with_ec(
14111411
break;
14121412
}
14131413
}
1414-
(*st).rng = (*dec).rng;
1414+
(*st).rng = dec.rng;
14151415
deemphasis(
14161416
out_syn.as_mut_ptr(),
14171417
pcm,
@@ -1441,7 +1441,7 @@ pub unsafe fn opus_custom_decoder_ctl_impl(
14411441
match request {
14421442
CELT_SET_START_BAND_REQUEST => {
14431443
let value: i32 = ap.arg::<i32>();
1444-
if value < 0 || value >= (*(*st).mode).nbEBands as i32 {
1444+
if value < 0 || value >= (*st).mode.nbEBands as i32 {
14451445
current_block = 7990025728955927862;
14461446
} else {
14471447
(*st).start = value;
@@ -1450,7 +1450,7 @@ pub unsafe fn opus_custom_decoder_ctl_impl(
14501450
}
14511451
CELT_SET_END_BAND_REQUEST => {
14521452
let value_0: i32 = ap.arg::<i32>();
1453-
if value_0 < 1 || value_0 > (*(*st).mode).nbEBands as i32 {
1453+
if value_0 < 1 || value_0 > (*st).mode.nbEBands as i32 {
14541454
current_block = 7990025728955927862;
14551455
} else {
14561456
(*st).end = value_0;

src/celt/celt_encoder.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -839,7 +839,7 @@ unsafe fn tf_encode(
839839
let mut logp: i32 = 0;
840840
let mut budget: u32 = 0;
841841
let mut tell: u32 = 0;
842-
budget = ((*enc).storage).wrapping_mul(8);
842+
budget = enc.storage.wrapping_mul(8);
843843
tell = ec_tell(enc) as u32;
844844
logp = if isTransient != 0 { 2 } else { 4 };
845845
tf_select_rsv = (LM > 0 && tell.wrapping_add(logp as u32).wrapping_add(1) <= budget) as i32;
@@ -2045,8 +2045,8 @@ pub unsafe fn celt_encode_with_ec(
20452045
oldLogE2 = oldLogE.offset((CC * nbEBands) as isize);
20462046
energyError = oldLogE2.offset((CC * nbEBands) as isize);
20472047
if let Some(enc) = enc.as_mut() {
2048-
tell0_frac = ec_tell_frac(*enc) as i32;
2049-
tell = ec_tell(*enc);
2048+
tell0_frac = ec_tell_frac(enc) as i32;
2049+
tell = ec_tell(enc);
20502050
nbFilledBytes = tell + 4 >> 3;
20512051
} else {
20522052
tell = 1;
@@ -2187,7 +2187,7 @@ pub unsafe fn celt_encode_with_ec(
21872187
ec_enc_shrink(enc, nbCompressedBytes as u32);
21882188
}
21892189
tell = nbCompressedBytes * 8;
2190-
(*enc).nbits_total += tell - ec_tell(enc);
2190+
enc.nbits_total += tell - ec_tell(enc);
21912191
}
21922192
c = 0;
21932193
loop {
@@ -3293,7 +3293,7 @@ pub unsafe fn celt_encode_with_ec(
32933293
} else {
32943294
(*st).consec_transient = 0;
32953295
}
3296-
(*st).rng = (*enc).rng;
3296+
(*st).rng = enc.rng;
32973297
ec_enc_done(enc);
32983298
if ec_get_error(enc) != 0 {
32993299
return OPUS_INTERNAL_ERROR;

src/celt/quant_bands.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -563,7 +563,7 @@ pub unsafe fn unquant_coarse_energy(
563563
beta = beta_coef[LM as usize];
564564
coef = pred_coef[LM as usize];
565565
}
566-
budget = ((*dec).storage).wrapping_mul(8) as i32;
566+
budget = dec.storage.wrapping_mul(8) as i32;
567567
i = start;
568568
while i < end {
569569
c = 0;

src/lib.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,13 @@ pub use crate::src::opus_encoder::{
188188
opus_encoder_destroy, opus_encoder_get_size, opus_encoder_init, OpusEncoder,
189189
};
190190
// opus_decoder
191+
#[allow(deprecated)]
191192
pub use crate::src::opus_decoder::{
192-
opus_decode, opus_decode_float, opus_decoder_create, opus_decoder_ctl_impl,
193-
opus_decoder_destroy, opus_decoder_get_nb_samples, opus_decoder_get_size, opus_decoder_init,
193+
opus_decoder_create, opus_decoder_destroy, opus_decoder_get_size, opus_decoder_init,
194+
};
195+
196+
pub use crate::src::opus_decoder::{
197+
opus_decode, opus_decode_float, opus_decoder_ctl_impl, opus_decoder_get_nb_samples,
194198
opus_packet_get_bandwidth, opus_packet_get_nb_channels, opus_packet_get_nb_frames,
195199
opus_packet_get_nb_samples, OpusDecoder,
196200
};

src/silk/CNG.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,16 @@ pub fn silk_CNG_Reset(psDec: &mut silk_decoder_state) {
3434
let mut i: i32 = 0;
3535
let mut NLSF_step_Q15: i32 = 0;
3636
let mut NLSF_acc_Q15: i32 = 0;
37-
NLSF_step_Q15 = 0x7fff / ((*psDec).LPC_order + 1);
37+
NLSF_step_Q15 = 0x7fff / (psDec.LPC_order + 1);
3838
NLSF_acc_Q15 = 0;
3939
i = 0;
40-
while i < (*psDec).LPC_order {
40+
while i < psDec.LPC_order {
4141
NLSF_acc_Q15 += NLSF_step_Q15;
42-
(*psDec).sCNG.CNG_smth_NLSF_Q15[i as usize] = NLSF_acc_Q15 as i16;
42+
psDec.sCNG.CNG_smth_NLSF_Q15[i as usize] = NLSF_acc_Q15 as i16;
4343
i += 1;
4444
}
45-
(*psDec).sCNG.CNG_smth_Gain_Q16 = 0;
46-
(*psDec).sCNG.rand_seed = 3176576;
45+
psDec.sCNG.CNG_smth_Gain_Q16 = 0;
46+
psDec.sCNG.rand_seed = 3176576;
4747
}
4848
pub unsafe fn silk_CNG(
4949
psDec: *mut silk_decoder_state,

src/silk/decode_indices.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,8 @@ pub unsafe fn silk_decode_indices(
5656
}
5757
(*psDec).indices.NLSFIndices[0 as usize] = ec_dec_icdf(
5858
psRangeDec,
59-
&(*(*psDec).psNLSF_CB).CB1_iCDF[(((*psDec).indices.signalType as i32 >> 1)
60-
* (*(*psDec).psNLSF_CB).nVectors as i32)
61-
as usize..],
59+
&(*psDec).psNLSF_CB.CB1_iCDF[(((*psDec).indices.signalType as i32 >> 1)
60+
* (*psDec).psNLSF_CB.nVectors as i32) as usize..],
6261
8,
6362
) as i8;
6463
silk_NLSF_unpack(
@@ -67,12 +66,12 @@ pub unsafe fn silk_decode_indices(
6766
(*psDec).psNLSF_CB,
6867
(*psDec).indices.NLSFIndices[0 as usize] as i32,
6968
);
70-
assert!((*(*psDec).psNLSF_CB).order as i32 == (*psDec).LPC_order);
69+
assert!((*psDec).psNLSF_CB.order as i32 == (*psDec).LPC_order);
7170
i = 0;
72-
while i < (*(*psDec).psNLSF_CB).order as i32 {
71+
while i < (*psDec).psNLSF_CB.order as i32 {
7372
Ix = ec_dec_icdf(
7473
psRangeDec,
75-
&(*(*psDec).psNLSF_CB).ec_iCDF[*ec_ix.as_mut_ptr().offset(i as isize) as usize..],
74+
&(*psDec).psNLSF_CB.ec_iCDF[*ec_ix.as_mut_ptr().offset(i as isize) as usize..],
7675
8,
7776
);
7877
if Ix == 0 {

src/silk/enc_API.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -565,7 +565,7 @@ pub unsafe fn silk_Encode(
565565
}
566566
TargetRate_bps -= (*psEnc).nBitsExceeded * 1000 / 500;
567567
if prefillFlag == 0 && (*psEnc).state_Fxx[0 as usize].sCmn.nFramesEncoded > 0 {
568-
let bitsBalance: i32 = ec_tell(&mut **psRangeEnc.as_mut().unwrap())
568+
let bitsBalance: i32 = ec_tell(psRangeEnc.as_mut().unwrap())
569569
- (*psEnc).nBitsUsedLBRR
570570
- nBits * (*psEnc).state_Fxx[0 as usize].sCmn.nFramesEncoded;
571571
TargetRate_bps -= bitsBalance * 1000 / 500;
@@ -791,7 +791,7 @@ pub unsafe fn silk_Encode(
791791
}
792792
if prefillFlag == 0 {
793793
ec_enc_patch_initial_bits(
794-
&mut **psRangeEnc.as_mut().unwrap(),
794+
psRangeEnc.as_mut().unwrap(),
795795
flags as u32,
796796
(((*psEnc).state_Fxx[0 as usize].sCmn.nFramesPerPacket + 1)
797797
* (*encControl).nChannelsInternal) as u32,

src/silk/encode_indices.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ pub unsafe fn silk_encode_indices(
7777
ec_enc_icdf(
7878
psRangeEnc,
7979
(*psIndices).NLSFIndices[0 as usize] as i32,
80-
&(*(*psEncC).psNLSF_CB).CB1_iCDF[(((*psIndices).signalType as i32 >> 1)
81-
* (*(*psEncC).psNLSF_CB).nVectors as i32)
80+
&(*psEncC).psNLSF_CB.CB1_iCDF[(((*psIndices).signalType as i32 >> 1)
81+
* (*psEncC).psNLSF_CB.nVectors as i32)
8282
as usize..],
8383
8,
8484
);
@@ -88,14 +88,14 @@ pub unsafe fn silk_encode_indices(
8888
(*psEncC).psNLSF_CB,
8989
(*psIndices).NLSFIndices[0 as usize] as i32,
9090
);
91-
assert!((*(*psEncC).psNLSF_CB).order as i32 == (*psEncC).predictLPCOrder);
91+
assert!((*psEncC).psNLSF_CB.order as i32 == (*psEncC).predictLPCOrder);
9292
i = 0;
93-
while i < (*(*psEncC).psNLSF_CB).order as i32 {
93+
while i < (*psEncC).psNLSF_CB.order as i32 {
9494
if (*psIndices).NLSFIndices[(i + 1) as usize] as i32 >= NLSF_QUANT_MAX_AMPLITUDE {
9595
ec_enc_icdf(
9696
psRangeEnc,
9797
2 * NLSF_QUANT_MAX_AMPLITUDE,
98-
&(*(*psEncC).psNLSF_CB).ec_iCDF[*ec_ix.as_mut_ptr().offset(i as isize) as usize..],
98+
&(*psEncC).psNLSF_CB.ec_iCDF[*ec_ix.as_mut_ptr().offset(i as isize) as usize..],
9999
8,
100100
);
101101
ec_enc_icdf(
@@ -108,7 +108,7 @@ pub unsafe fn silk_encode_indices(
108108
ec_enc_icdf(
109109
psRangeEnc,
110110
0,
111-
&(*(*psEncC).psNLSF_CB).ec_iCDF[*ec_ix.as_mut_ptr().offset(i as isize) as usize..],
111+
&(*psEncC).psNLSF_CB.ec_iCDF[*ec_ix.as_mut_ptr().offset(i as isize) as usize..],
112112
8,
113113
);
114114
ec_enc_icdf(
@@ -121,7 +121,7 @@ pub unsafe fn silk_encode_indices(
121121
ec_enc_icdf(
122122
psRangeEnc,
123123
(*psIndices).NLSFIndices[(i + 1) as usize] as i32 + NLSF_QUANT_MAX_AMPLITUDE,
124-
&(*(*psEncC).psNLSF_CB).ec_iCDF[*ec_ix.as_mut_ptr().offset(i as isize) as usize..],
124+
&(*psEncC).psNLSF_CB.ec_iCDF[*ec_ix.as_mut_ptr().offset(i as isize) as usize..],
125125
8,
126126
);
127127
}

src/silk/float/encode_frame_FLP.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ pub unsafe fn silk_encode_frame_FLP(
295295
psRangeEnc.restore(sRangeEnc_copy2);
296296
assert!(sRangeEnc_copy2.offs <= 1275);
297297
memcpy(
298-
(*psRangeEnc).buf.as_mut_ptr() as *mut core::ffi::c_void,
298+
psRangeEnc.buf.as_mut_ptr() as *mut core::ffi::c_void,
299299
ec_buf_copy.as_mut_ptr() as *const core::ffi::c_void,
300300
sRangeEnc_copy2.offs as u64,
301301
);
@@ -334,11 +334,11 @@ pub unsafe fn silk_encode_frame_FLP(
334334
if gainsID != gainsID_lower {
335335
gainsID_lower = gainsID;
336336
sRangeEnc_copy2 = psRangeEnc.save();
337-
assert!((*psRangeEnc).offs <= 1275);
337+
assert!(psRangeEnc.offs <= 1275);
338338
memcpy(
339339
ec_buf_copy.as_mut_ptr() as *mut core::ffi::c_void,
340-
(*psRangeEnc).buf.as_mut_ptr() as *const core::ffi::c_void,
341-
(*psRangeEnc).offs as u64,
340+
psRangeEnc.buf.as_mut_ptr() as *const core::ffi::c_void,
341+
psRangeEnc.offs as u64,
342342
);
343343
memcpy(
344344
&mut sNSQ_copy2 as *mut silk_nsq_state as *mut core::ffi::c_void,

0 commit comments

Comments
 (0)