]> git.nihav.org Git - nihav.git/blobdiff - nihav-game/src/demuxers/vmd.rs
rv20: calculate proper frame timestamps
[nihav.git] / nihav-game / src / demuxers / vmd.rs
index d0959722e130fe75b49429473603211eea4ffd2f..1cfba901bf716e06372850d3b6ee320cbefc8288 100644 (file)
@@ -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<u8> = 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<u8> = 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;