- #[allow(unused_variables)]
- fn seek(&mut self, time: u64) -> DemuxerResult<()> {
- Err(DemuxerError::NotImplemented)
+ fn seek(&mut self, time: NATimePoint, seek_idx: &SeekIndex) -> DemuxerResult<()> {
+ let ret = seek_idx.find_pos(time);
+ if ret.is_none() {
+ return Err(DemuxerError::SeekError);
+ }
+ let seek_info = ret.unwrap();
+ self.src.seek(SeekFrom::Start(seek_info.pos))?;
+ self.queued_packets.clear();
+ self.cur_frame = seek_info.pts as usize;
+ Ok(())