X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-realmedia%2Fsrc%2Fcodecs%2Fra288.rs;h=20008bb305d36a1e2c01b82866a1ef602a185b39;hb=afd175ff93417cf3f49d790af1c7f9d4198fed2c;hp=4daf5172650184ac9fca7b356bedab751be9bf75;hpb=6011e20199143f519881660144a4ca95ba77fd2d;p=nihav.git diff --git a/nihav-realmedia/src/codecs/ra288.rs b/nihav-realmedia/src/codecs/ra288.rs index 4daf517..20008bb 100644 --- a/nihav-realmedia/src/codecs/ra288.rs +++ b/nihav-realmedia/src/codecs/ra288.rs @@ -38,14 +38,14 @@ fn backfilter(hist: &mut [f32], rec: &mut [f32], filt: &mut [f32], win: &[f32], for i in 0..(order + start + non_rec) { work[i] = win[i] * hist[i]; } - for i in (0..order + 1).rev() { + for i in (0..=order).rev() { let src1 = &work[(order - i)..]; let src2 = &work[order + start - i..]; tmp1[i] = scalarprod(&work[order..], src1, start); tmp2[i] = scalarprod(&work[order + start..], src2, non_rec); } - for i in 0..(order + 1) { + for i in 0..=order { rec[i] = rec[i] * 0.5625 + tmp1[i]; temp[i] = rec[i] + tmp2[i]; } @@ -157,7 +157,7 @@ impl NADecoder for RA288Decoder { self.ainfo = NAAudioInfo::new(ainfo.get_sample_rate(), 1, SND_F32P_FORMAT, NBLOCKS * BLOCKSIZE); - self.info = info.replace_info(NACodecTypeInfo::Audio(self.ainfo.clone())); + self.info = info.replace_info(NACodecTypeInfo::Audio(self.ainfo)); Ok(()) } else { Err(DecoderError::InvalidData) @@ -197,9 +197,11 @@ impl NADecoder for RA288Decoder { frm.set_keyframe(true); Ok(frm.into_ref()) } + fn flush(&mut self) { + } } -pub fn get_decoder() -> Box { +pub fn get_decoder() -> Box { Box::new(RA288Decoder::new()) } @@ -218,7 +220,7 @@ mod test { realmedia_register_all_codecs(&mut dec_reg); let file = "assets/RV/A0000044.rm"; - test_decode_audio("realmedia", file, Some(5000), "ra28.8", &dmx_reg, &dec_reg); + test_decode_audio("realmedia", file, Some(5000), None/*Some("ra28.8")*/, &dmx_reg, &dec_reg); } }