siff: fix SON duration
authorKostya Shishkov <kostya.shishkov@gmail.com>
Sat, 5 Nov 2022 10:09:16 +0000 (11:09 +0100)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Sat, 5 Nov 2022 10:09:16 +0000 (11:09 +0100)
nihav-game/src/demuxers/siff.rs

index 7bc29fc7fd6c493c457871064abceb8d1e00fd36..1c961bea1e304850c9f80438b742651567b49151 100644 (file)
@@ -204,7 +204,7 @@ impl<'a> SIFFDemuxer<'a> {
         validate!(&tag == b"SHDR");
         let hdr_size                    = self.src.read_u32be()? as usize;
         validate!(hdr_size >= 8);
-        let snd_size                    = self.src.read_u32le()?;
+        let duration                    = self.src.read_u32le()? as u64;
         let srate                       = self.src.read_u16le()? as u32;
         let flags                       = self.src.read_u16le()?;
         let bits = flags as u8;
@@ -213,8 +213,6 @@ impl<'a> SIFFDemuxer<'a> {
         self.ablock = (bits as usize) * (channels as usize);
                                           self.src.read_skip(hdr_size - 8)?;
 
-        let duration = u64::from(snd_size) / u64::from(channels) * 8 / u64::from(bits);
-
         let fmt = match bits {
                 8 => SND_U8_FORMAT,
                16 => SND_S16_FORMAT,