let paloff = buf.get_offset(1);
let data = buf.get_data_mut().unwrap();
for (inrow, outrow) in self.framebuf.chunks(self.width).zip(data.chunks_mut(stride)) {
let paloff = buf.get_offset(1);
let data = buf.get_data_mut().unwrap();
for (inrow, outrow) in self.framebuf.chunks(self.width).zip(data.chunks_mut(stride)) {
let edata = info.get_extradata();
let flags = if let Some(ref buf) = edata {
validate!(buf.len() >= 2);
let edata = info.get_extradata();
let flags = if let Some(ref buf) = edata {
validate!(buf.len() >= 2);
}
};
self.ainfo = NAAudioInfo::new(ainfo.get_sample_rate(), ainfo.get_channels(), fmt, ainfo.get_block_len());
}
};
self.ainfo = NAAudioInfo::new(ainfo.get_sample_rate(), ainfo.get_channels(), fmt, ainfo.get_block_len());
self.chmap = NAChannelMap::from_str(if channels == 1 { "C" } else { "L,R" }).unwrap();
Ok(())
} else {
Err(DecoderError::InvalidData)
}
}
self.chmap = NAChannelMap::from_str(if channels == 1 { "C" } else { "L,R" }).unwrap();
Ok(())
} else {
Err(DecoderError::InvalidData)
}
}
fn decode(&mut self, _supp: &mut NADecoderSupport, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
let info = pkt.get_stream().get_info();
if let NACodecTypeInfo::Audio(_) = info.get_properties() {
fn decode(&mut self, _supp: &mut NADecoderSupport, pkt: &NAPacket) -> DecoderResult<NAFrameRef> {
let info = pkt.get_stream().get_info();
if let NACodecTypeInfo::Audio(_) = info.get_properties() {
- let mut dst = adata.get_data_mut().unwrap();
- self.decode_16bit(&mut dst, off1, &mut br, nblocks, mask)?;
+ let dst = adata.get_data_mut().unwrap();
+ self.decode_16bit(dst, off1, &mut br, nblocks, mask)?;
use nihav_core::codecs::RegisteredDecoders;
use nihav_core::demuxers::RegisteredDemuxers;
use nihav_codec_support::test::dec_video::*;
use nihav_core::codecs::RegisteredDecoders;
use nihav_core::demuxers::RegisteredDemuxers;
use nihav_codec_support::test::dec_video::*;
#[test]
fn test_vmd_video() {
let mut dmx_reg = RegisteredDemuxers::new();
game_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
#[test]
fn test_vmd_video() {
let mut dmx_reg = RegisteredDemuxers::new();
game_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
- test_decoding("vmd", "vmd-video", "assets/Game/2832.VMD", Some(10), &dmx_reg, &dec_reg,
+ test_decoding("vmd", "vmd-video", "assets/Game/sierra/2832.VMD", Some(10), &dmx_reg, &dec_reg,
ExpectedTestResult::MD5Frames(vec![
[0xd29e0214, 0xf38ad154, 0xccbd381f, 0x3de1109c],
[0x904074eb, 0x202b1d6f, 0xe3f68538, 0xf0db641c],
ExpectedTestResult::MD5Frames(vec![
[0xd29e0214, 0xf38ad154, 0xccbd381f, 0x3de1109c],
[0x904074eb, 0x202b1d6f, 0xe3f68538, 0xf0db641c],
let mut dmx_reg = RegisteredDemuxers::new();
game_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
let mut dmx_reg = RegisteredDemuxers::new();
game_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
- test_decoding("vmd", "vmd-video", "assets/Game/HLP1000.VMD", Some(10), &dmx_reg, &dec_reg,
+ test_decoding("vmd", "vmd-video", "assets/Game/sierra/HLP1000.VMD", Some(10), &dmx_reg, &dec_reg,
ExpectedTestResult::MD5Frames(vec![
[0x03d77d51, 0x8670ae24, 0x86184cc8, 0x9c928700],
[0xf4796f1b, 0x0f75a120, 0x62056509, 0xc83f1a2c],
ExpectedTestResult::MD5Frames(vec![
[0x03d77d51, 0x8670ae24, 0x86184cc8, 0x9c928700],
[0xf4796f1b, 0x0f75a120, 0x62056509, 0xc83f1a2c],
let mut dmx_reg = RegisteredDemuxers::new();
game_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
let mut dmx_reg = RegisteredDemuxers::new();
game_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
- test_decoding("vmd", "vmd-video", "assets/Game/02C.VMD", None, &dmx_reg, &dec_reg,
+ test_decoding("vmd", "vmd-video", "assets/Game/sierra/02C.VMD", None, &dmx_reg, &dec_reg,
ExpectedTestResult::MD5([0xb580782c, 0xd7fb98c0, 0xaf9b83cc, 0xaea0846b]));
}
#[test]
ExpectedTestResult::MD5([0xb580782c, 0xd7fb98c0, 0xaf9b83cc, 0xaea0846b]));
}
#[test]
let mut dmx_reg = RegisteredDemuxers::new();
game_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
let mut dmx_reg = RegisteredDemuxers::new();
game_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
- test_decoding("vmd", "vmd-audio", "assets/Game/1491.VMD", None, &dmx_reg, &dec_reg,
+ test_decoding("vmd", "vmd-audio", "assets/Game/sierra/1491.VMD", None, &dmx_reg, &dec_reg,
ExpectedTestResult::MD5([0x75037601, 0xbc7b3976, 0x6e1c948b, 0xf05a3d6c]));
}
#[test]
ExpectedTestResult::MD5([0x75037601, 0xbc7b3976, 0x6e1c948b, 0xf05a3d6c]));
}
#[test]
let mut dmx_reg = RegisteredDemuxers::new();
game_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
let mut dmx_reg = RegisteredDemuxers::new();
game_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
- test_decoding("vmd", "vmd-audio", "assets/Game/2832.VMD", None, &dmx_reg, &dec_reg,
+ test_decoding("vmd", "vmd-audio", "assets/Game/sierra/2832.VMD", None, &dmx_reg, &dec_reg,
ExpectedTestResult::MD5([0x32dcdf0e, 0xee058684, 0x43ed5bf1, 0x2ff18b5a]));
}
#[test]
ExpectedTestResult::MD5([0x32dcdf0e, 0xee058684, 0x43ed5bf1, 0x2ff18b5a]));
}
#[test]
let mut dmx_reg = RegisteredDemuxers::new();
game_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
let mut dmx_reg = RegisteredDemuxers::new();
game_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
- test_decoding("vmd", "vmd-audio", "assets/Game/1000.VMD", None, &dmx_reg, &dec_reg,
+ test_decoding("vmd", "vmd-audio", "assets/Game/sierra/1000.VMD", None, &dmx_reg, &dec_reg,
ExpectedTestResult::MD5([0xc36215d3, 0x96530a80, 0x89f1fa8e, 0x49da302b]));
}
#[test]
ExpectedTestResult::MD5([0xc36215d3, 0x96530a80, 0x89f1fa8e, 0x49da302b]));
}
#[test]
let mut dmx_reg = RegisteredDemuxers::new();
game_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
let mut dmx_reg = RegisteredDemuxers::new();
game_register_all_demuxers(&mut dmx_reg);
let mut dec_reg = RegisteredDecoders::new();
- test_decoding("vmd", "vmd-audio", "assets/Game/HLP1000.VMD", None, &dmx_reg, &dec_reg,
+ test_decoding("vmd", "vmd-audio", "assets/Game/sierra/HLP1000.VMD", None, &dmx_reg, &dec_reg,
ExpectedTestResult::MD5([0x76a00405, 0xe4e5378d, 0x495b2a68, 0x4dffe042]));
}
}
ExpectedTestResult::MD5([0x76a00405, 0xe4e5378d, 0x495b2a68, 0x4dffe042]));
}
}