in mp4parse/src/lib.rs [5194:5225]
fn read_dc_descriptor(data: &[u8], esds: &mut ES_Descriptor) -> Result<()> {
let des = &mut Cursor::new(data);
let object_profile = des.read_u8()?;
#[cfg(feature = "mp4v")]
{
esds.video_codec = match object_profile {
0x20..=0x24 => CodecType::MP4V,
_ => CodecType::Unknown,
};
}
// Skip uninteresting fields.
skip(des, 12)?;
if data.len().to_u64() > des.position() {
find_descriptor(&data[des.position().try_into()?..data.len()], esds)?;
}
esds.audio_codec = match object_profile {
0x40 | 0x66 | 0x67 => CodecType::AAC,
0x69 | 0x6B => CodecType::MP3,
_ => CodecType::Unknown,
};
debug!(
"read_dc_descriptor: esds.audio_codec = {:?}",
esds.audio_codec
);
Ok(())
}