diff options
author | Kostya Shishkov <kostya.shishkov@gmail.com> | 2020-07-09 10:42:42 +0200 |
---|---|---|
committer | Kostya Shishkov <kostya.shishkov@gmail.com> | 2020-07-09 10:42:42 +0200 |
commit | 24d998947d55228ec37a08cd391983c6239e3c0c (patch) | |
tree | c7c392e66ea95f35f558de9edd5a3ff8bfaede01 /nihav-commonfmt/src/demuxers/wav.rs | |
parent | dcabdfd2eea01174f46548a8e2166ab88d0de96b (diff) | |
download | nihav-24d998947d55228ec37a08cd391983c6239e3c0c.tar.gz |
use NATimePoint for seeking
Diffstat (limited to 'nihav-commonfmt/src/demuxers/wav.rs')
-rw-r--r-- | nihav-commonfmt/src/demuxers/wav.rs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/nihav-commonfmt/src/demuxers/wav.rs b/nihav-commonfmt/src/demuxers/wav.rs index f9c9551..a579279 100644 --- a/nihav-commonfmt/src/demuxers/wav.rs +++ b/nihav-commonfmt/src/demuxers/wav.rs @@ -83,10 +83,16 @@ impl<'a> DemuxCore<'a> for WAVDemuxer<'a> { } } - fn seek(&mut self, time: u64, _seek_index: &SeekIndex) -> DemuxerResult<()> { + fn seek(&mut self, time: NATimePoint, _seek_index: &SeekIndex) -> DemuxerResult<()> { if self.block_size != 0 && self.avg_bytes != 0 { - let seek_dst = u64::from(self.avg_bytes) * time / 1000; - let seek_off = seek_dst / (self.block_size as u64) * (self.block_size as u64); + let seek_off = match time { + NATimePoint::Milliseconds(ms) => { + let seek_dst = u64::from(self.avg_bytes) * ms / 1000; + seek_dst / (self.block_size as u64) * (self.block_size as u64) + }, + NATimePoint::PTS(pts) => (self.block_size as u64) * pts, + NATimePoint::None => return Ok(()), + }; self.src.seek(SeekFrom::Start(self.data_pos + seek_off))?; Ok(()) } else { |