fix clippy warnings
[nihav.git] / nihav-rad / src / demuxers / smacker.rs
index 5580a871b4ae4b716394455c1581d2a34739484f..00724cf5b0c7be3b0a2d9ccaeebcc9e9ed396167 100644 (file)
@@ -56,7 +56,7 @@ impl AudioTrack {
         let soniton = if (self.flags & SMK_AUD_FLAG_16BIT) != 0 { SND_S16_FORMAT } else { SND_U8_FORMAT };
         let ahdr = NAAudioInfo::new(self.srate, channels, soniton, 1);
         let ainfo = NACodecInfo::new(codecname, NACodecTypeInfo::Audio(ahdr), None);
-        let res = strmgr.add_stream(NAStream::new(StreamType::Audio, (str_id + 1) as u32, ainfo, 1, self.srate));
+        let res = strmgr.add_stream(NAStream::new(StreamType::Audio, (str_id + 1) as u32, ainfo, 1, self.srate, 0));
         validate!(res.is_some());
         self.id = res.unwrap();
 
@@ -149,7 +149,7 @@ impl<'a> DemuxCore<'a> for SmackerVideoDemuxer<'a> {
 
         let vhdr = NAVideoInfo::new(width, height, false, PAL8_FORMAT);
         let vinfo = NACodecInfo::new("smacker-video", NACodecTypeInfo::Video(vhdr), Some(treedata));
-        let res = strmgr.add_stream(NAStream::new(StreamType::Video, 0, vinfo, 1, 100000));
+        let res = strmgr.add_stream(NAStream::new(StreamType::Video, 0, vinfo, 1, 100000, 0));
         validate!(res.is_some());
         self.video_id = res.unwrap();
 
@@ -252,11 +252,7 @@ impl<'a> DemuxCore<'a> for SmackerVideoDemuxer<'a> {
         Ok(pkt)
     }
     fn seek(&mut self, time: NATimePoint, _seek_idx: &SeekIndex) -> DemuxerResult<()> {
-        let seek_to_start = match time {
-                NATimePoint::Milliseconds(0) => true,
-                NATimePoint::PTS(0) => true,
-                _ => false,
-            };
+        let seek_to_start = matches!(time, NATimePoint::Milliseconds(0) | NATimePoint::PTS(0));
         if seek_to_start {
             let start = self.start;
             self.src.seek(SeekFrom::Start(start))?;
@@ -267,6 +263,7 @@ impl<'a> DemuxCore<'a> for SmackerVideoDemuxer<'a> {
         }
         Err(DemuxerError::NotImplemented)
     }
+    fn get_duration(&self) -> u64 { self.frames as u64 * self.pts_inc / 100 }
 }
 
 impl<'a> NAOptionHandler for SmackerVideoDemuxer<'a> {
@@ -293,7 +290,7 @@ impl<'a> SmackerVideoDemuxer<'a> {
         }
     }
     fn reset_state(&mut self) {
-        self.queued_packets.truncate(0);
+        self.queued_packets.clear();
     }
 }
 
@@ -313,6 +310,7 @@ mod test {
 
     #[test]
     fn test_smk_demux() {
+        // sample: https://samples.mplayerhq.hu/game-formats/smacker/20130507_audio-distortion.smk
         let mut file = File::open("assets/RAD/20130507_audio-distortion.smk").unwrap();
 //        let mut file = File::open("assets/RAD/ajfstr1.smk").unwrap();
 //        let mut file = File::open("assets/RAD/credits.smk").unwrap();