X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-realmedia%2Fsrc%2Fcodecs%2Fra288.rs;h=251e47ce73b69086f5cd9e4e191ec9352e5e394e;hb=5580b11b0e9daf065c81a8b354295c6d5d1dd3dd;hp=dbb7f90c444c0f97d2ca581ec6c770ddd9ddce84;hpb=171860fcc4a4ba3ec28bc4b720b9f582377be4cf;p=nihav.git diff --git a/nihav-realmedia/src/codecs/ra288.rs b/nihav-realmedia/src/codecs/ra288.rs index dbb7f90..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]; } @@ -151,19 +151,19 @@ impl RA288Decoder { } impl NADecoder for RA288Decoder { - fn init(&mut self, info: NACodecInfoRef) -> DecoderResult<()> { + fn init(&mut self, _supp: &mut NADecoderSupport, info: NACodecInfoRef) -> DecoderResult<()> { if let NACodecTypeInfo::Audio(ainfo) = info.get_properties() { self.chmap.add_channels(&CHMAP_MONO); 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) } } - fn decode(&mut self, pkt: &NAPacket) -> DecoderResult { + fn decode(&mut self, _supp: &mut NADecoderSupport, pkt: &NAPacket) -> DecoderResult { let info = pkt.get_stream().get_info(); validate!(info.get_properties().is_audio()); let pktbuf = pkt.get_buffer(); @@ -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); } }