X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-realmedia%2Fsrc%2Fcodecs%2Fra288.rs;h=251e47ce73b69086f5cd9e4e191ec9352e5e394e;hb=5580b11b0e9daf065c81a8b354295c6d5d1dd3dd;hp=c3e23d9c244b29a1891314a1698da910ce17e414;hpb=01613464323864a655c994820d3c43df1954e3b2;p=nihav.git diff --git a/nihav-realmedia/src/codecs/ra288.rs b/nihav-realmedia/src/codecs/ra288.rs index c3e23d9..251e47c 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); } }