use std::str::FromStr;
const ADAPT_TABLE: [i32; 16] = [
- 230, 230, 230, 230, 307, 409, 512, 614,
+ 230, 230, 230, 230, 307, 409, 512, 614,
768, 614, 512, 409, 307, 230, 230, 230
];
const ADAPT_COEFFS: [[i32; 2]; 7] = [
}
}
+impl NAOptionHandler for MSADPCMDecoder {
+ fn get_supported_options(&self) -> &[NAOptionDefinition] { &[] }
+ fn set_options(&mut self, _options: &[NAOption]) { }
+ fn query_option_value(&self, _name: &str) -> Option<NAValue> { None }
+}
+
pub fn get_decoder() -> Box<dyn NADecoder + Send> {
Box::new(MSADPCMDecoder::new())
}
if (outinfo.channels == 1) && ((outinfo.block_len & 1) == 1) {
outinfo.block_len += 1;
}
- let mut ofmt = EncodeParameters::default();
+ let mut ofmt = *encinfo;
ofmt.format = NACodecTypeInfo::Audio(outinfo);
return Ok(ofmt);
}
let soniton = NASoniton::new(4, 0);
let out_ainfo = NAAudioInfo::new(ainfo.sample_rate, ainfo.channels, soniton, Self::calc_block_size(self.block_len, self.channels));
let info = NACodecInfo::new("ms-adpcm", NACodecTypeInfo::Audio(out_ainfo), None);
- let stream = NAStream::new(StreamType::Audio, stream_id, info.clone(), self.block_len as u32, ainfo.sample_rate).into_ref();
+ let mut stream = NAStream::new(StreamType::Audio, stream_id, info.clone(), self.block_len as u32, ainfo.sample_rate);
+ stream.set_num(stream_id as usize);
+ let stream = stream.into_ref();
self.stream = Some(stream.clone());
self.samples = Vec::with_capacity(self.block_len * self.channels);
self.srate = ainfo.sample_rate;
self.flush = false;
-
+
Ok(stream)
},
}