let _comp_flags = br.read_u32be()?;
let _comp_flags_mask = br.read_u32be()?;
- if comp_type == mktag!(b"mhlr") {
+ if comp_type == mktag!(b"mhlr") || comp_type == 0 {
if comp_subtype == mktag!(b"vide") {
track.stream_type = StreamType::Video;
} else if comp_subtype == mktag!(b"soun") {
}
fn read_stts(track: &mut Track, br: &mut ByteReader, size: u64) -> DemuxerResult<u64> {
- validate!(size >= 16);
+ validate!(size >= 8);
let start_pos = br.tell();
let version = br.read_byte()?;
validate!(version == 0);
let _flags = br.read_u24be()?;
let entries = br.read_u32be()? as usize;
validate!(entries as u64 <= (size - 8) / 8);
- if entries == 1 {
+ if entries == 0 {
+ } else if entries == 1 {
let _count = br.read_u32be()?;
let tb_num = br.read_u32be()?;
if let Some(ref mut stream) = track.stream {