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);
}
} else {
let mut hdrbuf = [0u8; WV_HEADER_SIZE];
+ let lastoff = self.known_frames.last().unwrap_or(&FrameSeekInfo::default()).off;
+ self.src.seek(SeekFrom::Start(lastoff))?;
loop {
self.src.peek_buf(&mut hdrbuf)?;
let hdr = WVHeader::parse(&hdrbuf)?;
Err(DemuxerError::NotPossible)
}
}
+ fn get_duration(&self) -> u64 { 0 }
}
impl<'a> NAOptionHandler for WavPackDemuxer<'a> {