X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-llaudio%2Fsrc%2Fcodecs%2Fflacenc.rs;h=f9adc24711f9f849ce5f329737a6cbc85aaffc8e;hp=3643c16d2f4ef74242f6d5e0b22fb0cc6f7fb1d5;hb=3fae33bd60f5575e63cfb1beec82a56a036e47fb;hpb=c11ad64e877fcf2e47c7bbb04bfb8d7764465dab diff --git a/nihav-llaudio/src/codecs/flacenc.rs b/nihav-llaudio/src/codecs/flacenc.rs index 3643c16..f9adc24 100644 --- a/nihav-llaudio/src/codecs/flacenc.rs +++ b/nihav-llaudio/src/codecs/flacenc.rs @@ -141,7 +141,7 @@ fn apply_lpc(dst: &mut [u32], src: &[i32], filter: &[i32], shift: u8) { } fn encode_residual(bw: &mut BitWriter, src: &[u32]) { - let sum = src.iter().fold(0, |acc, &x| acc + x) / (src.len() as u32); + let sum = src.iter().sum::() / (src.len() as u32); let k = (31 - sum.max(1).leading_zeros()) as u8; if k < 16 { @@ -173,6 +173,7 @@ struct FLACEncoder { ifilter: [i32; 32], } +#[allow(clippy::match_overlapping_arm)] fn nsamples_code(nsamp: usize) -> u8 { match nsamp { 192 => 1, @@ -298,7 +299,7 @@ impl FLACEncoder { let mut dbuf = bw.end(); calc_header_crc(&mut dbuf[..hdr_crc_pos]); calc_frame_crc(&mut dbuf); - let ts = NATimeInfo::new(None, None, Some(nsamples as u64), 1, self.srate); + let ts = NATimeInfo::new(Some(self.cur_pos as u64), None, Some(nsamples as u64), 1, self.srate); for samp in self.samples.iter_mut() { samp.drain(..nsamples); @@ -326,7 +327,7 @@ impl FLACEncoder { bw.write(1, 6); bw.write0(); // no wasted bits for &el in samp.iter() { - bw.write_s(i32::from(el), samp_bits); + bw.write_s(el, samp_bits); } }, -1 | -2 | -3 | -4 => { @@ -337,7 +338,7 @@ impl FLACEncoder { bw.write(8 | (order as u32), 6); bw.write0(); // no wasted bits for &el in samp[..order].iter() { - bw.write_s(i32::from(el), samp_bits); + bw.write_s(el, samp_bits); } encode_residual(bw, &self.tmp[order..nsamples]); }, @@ -373,7 +374,7 @@ impl FLACEncoder { bw.write(0x20 | ((order - 1) as u32), 6); bw.write0(); // no wasted bits for &el in samp[..order].iter() { - bw.write_s(i32::from(el), samp_bits); + bw.write_s(el, samp_bits); } bw.write(filter_bits - 1, 4); bw.write(filter_prec, 5);