in mp4parse/src/lib.rs [5228:5253]
fn read_es_descriptor(data: &[u8], esds: &mut ES_Descriptor) -> Result<()> {
let des = &mut Cursor::new(data);
skip(des, 2)?;
let esds_flags = des.read_u8()?;
// Stream dependency flag, first bit from left most.
if esds_flags & 0x80 > 0 {
// Skip uninteresting fields.
skip(des, 2)?;
}
// Url flag, second bit from left most.
if esds_flags & 0x40 > 0 {
// Skip uninteresting fields.
let skip_es_len = u64::from(des.read_u8()?) + 2;
skip(des, skip_es_len)?;
}
if data.len().to_u64() > des.position() {
find_descriptor(&data[des.position().try_into()?..data.len()], esds)?;
}
Ok(())
}