}
Ok(())
}
+ #[allow(clippy::transmute_ptr_to_ptr)]
fn output(&mut self, dst: &mut [f32], off0: usize, off1: usize, chno: usize) {
match self.transform {
Transform::DCT(ref mut dct) => {
}
}
+impl NAOptionHandler for BinkAudioDecoder {
+ 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_dct() -> Box<dyn NADecoder + Send> {
Box::new(BinkAudioDecoder::new(true))
}
mod test {
use nihav_core::codecs::RegisteredDecoders;
use nihav_core::demuxers::RegisteredDemuxers;
- use nihav_core::test::dec_video::*;
- use crate::rad_register_all_codecs;
+ use nihav_codec_support::test::dec_video::*;
+ use crate::rad_register_all_decoders;
use crate::rad_register_all_demuxers;
#[test]
- fn test_bink_audio() {
+ fn test_bink_audio_dct() {
+ let mut dmx_reg = RegisteredDemuxers::new();
+ rad_register_all_demuxers(&mut dmx_reg);
+ let mut dec_reg = RegisteredDecoders::new();
+ rad_register_all_decoders(&mut dec_reg);
+
+ // sample: https://samples.mplayerhq.hu/game-formats/bink/ActivisionLogo.bik
+ let file = "assets/RAD/ActivisionLogo.bik";
+ test_decode_audio("bink", file, None, None/*Some("bink")*/, &dmx_reg, &dec_reg);
+ }
+ #[test]
+ fn test_bink_audio_rdft() {
let mut dmx_reg = RegisteredDemuxers::new();
rad_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
- rad_register_all_codecs(&mut dec_reg);
+ rad_register_all_decoders(&mut dec_reg);
-// let file = "assets/RAD/ActivisionLogo.bik";
- let file = "assets/RAD/original.bik";
-// let file = "assets/RAD/Snd0a110c51.dee";
-// let file = "assets/RAD/NEW.BIK";
-// let file = "assets/RAD/ge_video_86l.bk2";
+ // sample from Heroes of Might and Magic 3
+ let file = "assets/RAD/NWCLOGO.BIK";
test_decode_audio("bink", file, None, None/*Some("bink")*/, &dmx_reg, &dec_reg);
}
}