-use std::rc::Rc;
-use std::cell::RefCell;
use nihav_core::formats::*;
use nihav_core::frame::*;
use nihav_core::codecs::*;
-use nihav_core::dsp::fft::FFTMode;
use nihav_core::dsp::mdct::IMDCT;
use nihav_core::io::bitreader::*;
use nihav_core::io::byteio::{ByteReader, MemoryReader};
gain_tab[i] = pow_tab[i + 53].powf(8.0 / fsamples);
}
let size = samples;
- CookDSP { imdct: IMDCT::new(FFTMode::SplitRadix, samples*2, false), window: window, out: [0.0; 2048], size, pow_tab, hpow_tab, gain_tab }
+ CookDSP { imdct: IMDCT::new(samples*2, false), window: window, out: [0.0; 2048], size, pow_tab, hpow_tab, gain_tab }
}
}
for ch in 0..self.mode.get_channels() {
let off = abuf.get_offset(ch + self.start_ch);
let mut adata = abuf.get_abuf_f32().unwrap();
- let mut output = adata.get_data_mut();
+ let output = adata.get_data_mut().unwrap();
let dst = &mut output[off..];
dsp.imdct.imdct(&self.block[ch], &mut dsp.out);
}
struct CookDecoder {
- info: Rc<NACodecInfo>,
+ info: NACodecInfoRef,
chmap: NAChannelMap,
src: [u8; 65536],
num_pairs: usize,
}
impl NADecoder for CookDecoder {
- fn init(&mut self, info: Rc<NACodecInfo>) -> DecoderResult<()> {
+ fn init(&mut self, _supp: &mut NADecoderSupport, info: NACodecInfoRef) -> DecoderResult<()> {
if let NACodecTypeInfo::Audio(ainfo) = info.get_properties() {
let edata = info.get_extradata().unwrap();
validate!(edata.len() >= 4);
Err(DecoderError::InvalidData)
}
}
- fn decode(&mut self, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
+ fn decode(&mut self, _supp: &mut NADecoderSupport, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
let info = pkt.get_stream().get_info();
validate!(info.get_properties().is_audio());
let pktbuf = pkt.get_buffer();
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())
}
}