X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-commonfmt%2Fsrc%2Fcodecs%2Faac.rs;h=85854206ab3e3470b4fe175027a14c17cbb6cea1;hb=a715e99fd5a8b724cf31877c74bbd8191d7fd256;hp=0329eb5423106ebf26fb635571db1275e756a26d;hpb=009c5158ba9cddf627cba468ef3691d5d45874e0;p=nihav.git diff --git a/nihav-commonfmt/src/codecs/aac.rs b/nihav-commonfmt/src/codecs/aac.rs index 0329eb5..8585420 100644 --- a/nihav-commonfmt/src/codecs/aac.rs +++ b/nihav-commonfmt/src/codecs/aac.rs @@ -325,12 +325,16 @@ impl ICSInfo { self.window_sequence = br.read(2)? as u8; match self.prev_window_sequence { ONLY_LONG_SEQUENCE | LONG_STOP_SEQUENCE => { - validate!((self.window_sequence == ONLY_LONG_SEQUENCE) || - (self.window_sequence == LONG_START_SEQUENCE)); + if (self.window_sequence != ONLY_LONG_SEQUENCE) && + (self.window_sequence != LONG_START_SEQUENCE) { + println!("incorrect previous window"); + } }, LONG_START_SEQUENCE | EIGHT_SHORT_SEQUENCE => { - validate!((self.window_sequence == EIGHT_SHORT_SEQUENCE) || - (self.window_sequence == LONG_STOP_SEQUENCE)); + if (self.window_sequence != EIGHT_SHORT_SEQUENCE) && + (self.window_sequence != LONG_STOP_SEQUENCE) { + println!("incorrect previous window"); + } }, _ => {}, }; @@ -552,14 +556,14 @@ impl Codebooks { fn new() -> Self { let mut coderead = TableCodebookDescReader::new(AAC_SCF_CODEBOOK_CODES, AAC_SCF_CODEBOOK_BITS, scale_map); let scale_cb = Codebook::new(&mut coderead, CodebookMode::MSB).unwrap(); - let mut spec_cb: [Codebook; 11]; - unsafe { - spec_cb = mem::uninitialized(); - for i in 0..AAC_SPEC_CODES.len() { - let mut coderead = TableCodebookDescReader::new(AAC_SPEC_CODES[i], AAC_SPEC_BITS[i], cb_map); - ptr::write(&mut spec_cb[i], Codebook::new(&mut coderead, CodebookMode::MSB).unwrap()); - } - } + let spec_cb = unsafe { + let mut uspec_cb: mem::MaybeUninit::<[Codebook; 11]> = mem::MaybeUninit::uninit(); + for i in 0..AAC_SPEC_CODES.len() { + let mut coderead = TableCodebookDescReader::new(AAC_SPEC_CODES[i], AAC_SPEC_BITS[i], cb_map); + ptr::write(&mut (*uspec_cb.as_mut_ptr())[i], Codebook::new(&mut coderead, CodebookMode::MSB).unwrap()); + } + uspec_cb.assume_init() + }; Self { scale_cb, spec_cb } } } @@ -1011,7 +1015,7 @@ impl DSP { tmp: [0.0; 2048], ew_buf: [0.0; 1152], } } - #[allow(clippy::cyclomatic_complexity)] + #[allow(clippy::cognitive_complexity)] fn synth(&mut self, coeffs: &[f32; 1024], delay: &mut [f32; 1024], seq: u8, window_shape: bool, prev_window_shape: bool, dst: &mut [f32]) { let long_win = if window_shape { &self.kbd_long_win } else { &self.sine_long_win }; let short_win = if window_shape { &self.kbd_short_win } else { &self.sine_short_win };