X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;ds=sidebyside;f=nihav-commonfmt%2Fsrc%2Fdemuxers%2Fmov.rs;h=4904697e193a901b9b974f518ff90f559b75824f;hb=d940f0c273d4f783e5ec5509e7006322f6d33e05;hp=19a602ffc88e53f7788c509c661edb2566b6630c;hpb=f5066527806da7bb9164d1537b71a94f9f1fa2df;p=nihav.git diff --git a/nihav-commonfmt/src/demuxers/mov.rs b/nihav-commonfmt/src/demuxers/mov.rs index 19a602f..4904697 100644 --- a/nihav-commonfmt/src/demuxers/mov.rs +++ b/nihav-commonfmt/src/demuxers/mov.rs @@ -846,8 +846,14 @@ impl Track { self.last_offset += size as u64; if self.stream_type == StreamType::Video { self.samples_left -= 1; - } else if self.frame_samples != 0 { - self.samples_left -= self.frame_samples.min(self.samples_left); + } else if self.frame_samples != 0 && self.bsize != 0 { + let nblocks = size / self.bsize; + if nblocks > 0 { + let consumed = (nblocks * self.frame_samples).min(self.samples_left); + self.samples_left -= consumed; + } else { + self.samples_left = 0; + } } else { self.samples_left = 0; }