annotate the sources for test samples
[nihav.git] / nihav-llaudio / src / demuxers / wavpack.rs
index d07a5a2844cace2f49ebb82a10374986d074dc97..9d010890ad88c5ae9987a624d4615c1c221a69cd 100644 (file)
@@ -20,7 +20,7 @@ const WV_FLAG_END_BLOCK: u32    = 1 << 12;
 const WV_FLAG_FALSE_STEREO: u32 = 1 << 30;
 //const WV_FLAG_DSD_AUDIO: u32    = 1 << 31;
 
-const WV_STREAM_FLAGS: u32 = 0x8000018B;
+const WV_STREAM_FLAGS: u32 = 0x8000008B;
 
 #[derive(Clone,Copy,Default)]
 struct WVHeader {
@@ -174,7 +174,7 @@ impl<'a> DemuxCore<'a> for WavPackDemuxer<'a> {
 
         let ahdr = NAAudioInfo::new(srate, channels, SND_S16P_FORMAT, 1);
         let ainfo = NACodecInfo::new("wavpack", NACodecTypeInfo::Audio(ahdr), Some(buf.clone()));
-        strmgr.add_stream(NAStream::new(StreamType::Audio, 0, ainfo, 1, srate)).unwrap();
+        strmgr.add_stream(NAStream::new(StreamType::Audio, 0, ainfo, 1, srate, hdr.tot_samples)).unwrap();
         seek_index.mode = SeekIndexMode::Automatic;
         self.srate = srate;
         self.known_frames = Vec::with_capacity(((self.nsamples + u64::from(srate) - 1) / u64::from(srate)) as usize);
@@ -253,6 +253,7 @@ impl<'a> DemuxCore<'a> for WavPackDemuxer<'a> {
             Err(DemuxerError::NotPossible)
         }
     }
+    fn get_duration(&self) -> u64 { 0 }
 }
 
 impl<'a> NAOptionHandler for WavPackDemuxer<'a> {
@@ -278,6 +279,7 @@ mod test {
 
     #[test]
     fn test_wavpack_demux() {
+        // sample from the official WavPack test samples set
         let mut file = File::open("assets/LLaudio/wv/false_stereo.wv").unwrap();
         let mut fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);