X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-game%2Fsrc%2Fdemuxers%2Fvmd.rs;h=1cfba901bf716e06372850d3b6ee320cbefc8288;hb=d254ca17b0cd03c0d91f60c849c8da6d152068ed;hp=0c47f89cf5600438a28b360fca0c2739640bc9ab;hpb=33b5a8f0020ee3e6e0cc39ba9f6219965502df84;p=nihav.git diff --git a/nihav-game/src/demuxers/vmd.rs b/nihav-game/src/demuxers/vmd.rs index 0c47f89..1cfba90 100644 --- a/nihav-game/src/demuxers/vmd.rs +++ b/nihav-game/src/demuxers/vmd.rs @@ -45,7 +45,7 @@ impl<'a> DemuxCore<'a> for VMDDemuxer<'a> { let nframes = read_u16le(&header[6..])? as usize; let fpb = read_u16le(&header[18..])? as usize; validate!(nframes > 0 && fpb > 0); - + let mut edata: Vec = Vec::with_capacity(HEADER_SIZE); edata.extend_from_slice(&header); let vhdr = NAVideoInfo::new(width, height, false, PAL8_FORMAT); @@ -67,8 +67,10 @@ impl<'a> DemuxCore<'a> for VMDDemuxer<'a> { block_size = bsize; } + let mut aedata: Vec = Vec::with_capacity(2); + aedata.extend_from_slice(&header[810..][..2]); let ahdr = NAAudioInfo::new(srate, channels, if is16bit { SND_S16P_FORMAT } else { SND_U8_FORMAT }, block_size); - let ainfo = NACodecInfo::new("vmd-audio", NACodecTypeInfo::Audio(ahdr), None); + let ainfo = NACodecInfo::new("vmd-audio", NACodecTypeInfo::Audio(ahdr), Some(aedata)); self.aud_id = strmgr.add_stream(NAStream::new(StreamType::Audio, 1, ainfo, 1, srate)).unwrap(); } else { block_size = 0; @@ -189,7 +191,8 @@ mod test { let mut br = ByteReader::new(&mut fr); let mut dmx = VMDDemuxer::new(&mut br); let mut sm = StreamManager::new(); - dmx.open(&mut sm).unwrap(); + let mut si = SeekIndex::new(); + dmx.open(&mut sm, &mut si).unwrap(); loop { let pktres = dmx.get_frame(&mut sm); if let Err(e) = pktres {