1
0
Fork 0
mirror of https://github.com/alfg/mp4-rust.git synced 2024-06-11 01:19:21 +00:00

Ensure skip_bytes() does not go back.

This commit is contained in:
Ian Jun 2020-08-06 21:30:46 +09:00
parent 4996ac97d9
commit d52eb674f9
2 changed files with 4 additions and 5 deletions

View file

@ -184,9 +184,8 @@ pub fn box_start<R: Seek>(seeker: &mut R) -> Result<u64> {
Ok(seeker.seek(SeekFrom::Current(0))? - HEADER_SIZE)
}
pub fn skip_bytes<S: Seek>(seeker: &mut S, size: i64) -> Result<()> {
assert!(size >= 0);
seeker.seek(SeekFrom::Current(size))?;
pub fn skip_bytes<S: Seek>(seeker: &mut S, size: u64) -> Result<()> {
seeker.seek(SeekFrom::Current(size as i64))?;
Ok(())
}

View file

@ -285,7 +285,7 @@ impl<R: Read + Seek> ReadDesc<&mut R> for ESDescriptor {
sl_config = Some(SLConfigDescriptor::read_desc(reader, desc_size)?);
}
_ => {
skip_bytes(reader, desc_size as i64 - 1)?;
skip_bytes(reader, desc_size as u64 - 1)?;
}
}
current = reader.seek(SeekFrom::Current(0))?;
@ -378,7 +378,7 @@ impl<R: Read + Seek> ReadDesc<&mut R> for DecoderConfigDescriptor {
dec_specific = Some(DecoderSpecificDescriptor::read_desc(reader, desc_size)?);
}
_ => {
skip_bytes(reader, desc_size as i64 - 1)?;
skip_bytes(reader, desc_size as u64 - 1)?;
}
}
current = reader.seek(SeekFrom::Current(0))?;