X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-commonfmt%2Fsrc%2Fcodecs%2Fts102366.rs;h=4858eaa05b00c4044587c62adea07e8e456e4bcc;hb=9e78289cc98dddb8f6d6ea4fc4c3655636e31a72;hp=5d1d66c2e6cccbf702150fe13d6e21077465d7ed;hpb=1a967e6bad5f17943b4de0607078eb940ad5adfe;p=nihav.git diff --git a/nihav-commonfmt/src/codecs/ts102366.rs b/nihav-commonfmt/src/codecs/ts102366.rs index 5d1d66c..4858eaa 100644 --- a/nihav-commonfmt/src/codecs/ts102366.rs +++ b/nihav-commonfmt/src/codecs/ts102366.rs @@ -1,5 +1,3 @@ -use std::rc::Rc; -use std::cell::RefCell; use nihav_core::formats::*; use nihav_core::frame::*; use nihav_core::codecs::*; @@ -44,7 +42,7 @@ impl IMDCTContext { xsincos[k].re = -factor.cos(); xsincos[k].im = -factor.sin(); } - let fft = FFTBuilder::new_fft(FFTMode::SplitRadix, size/4); + let fft = FFTBuilder::new_fft(size/4, false); IMDCTContext { xsincos: xsincos, size: size, fft: fft } } #[allow(non_snake_case)] @@ -109,14 +107,14 @@ fn do_imdct_core(fft: &mut FFT, xsc: &[FFTComplex; BLOCK_LEN/2], size: usize, il let c = FFTComplex { re: c0, im: c1 }; z[k] = c * xsc[k]; } - fft.do_fft_inplace(z, false); + fft.do_ifft_inplace(z); for k in 0..N4 { y[k] = z[k] * xsc[k]; } } struct AudioDecoder { - info: Rc, + info: NACodecInfoRef, ablk: AudioBlock, imdct512: IMDCTContext, imdct256: IMDCTContext, @@ -1159,7 +1157,7 @@ impl AudioBlock { } impl NADecoder for AudioDecoder { - fn init(&mut self, info: Rc) -> DecoderResult<()> { + fn init(&mut self, _supp: &mut NADecoderSupport, info: NACodecInfoRef) -> DecoderResult<()> { if let NACodecTypeInfo::Audio(_) = info.get_properties() { self.info = info.clone(); Ok(()) @@ -1167,7 +1165,7 @@ impl NADecoder for AudioDecoder { 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(); @@ -1237,7 +1235,7 @@ impl NADecoder for AudioDecoder { let mut frm = NAFrame::new_from_pkt(pkt, self.info.replace_info(NACodecTypeInfo::Audio(ainfo)), abuf); frm.set_keyframe(true); - Ok(Rc::new(RefCell::new(frm))) + Ok(frm.into_ref()) } }