fn read_alac()

in mp4parse/src/lib.rs [5382:5400]


fn read_alac<T: Read>(src: &mut BMFFBox<T>) -> Result<ALACSpecificBox> {
    let (version, flags) = read_fullbox_extra(src)?;
    if version != 0 {
        return Err(Error::Unsupported("unknown alac (ALAC) version"));
    }
    if flags != 0 {
        return Status::AlacFlagsNonzero.into();
    }

    let length = match src.bytes_left() {
        x @ 24 | x @ 48 => x,
        _ => {
            return Status::AlacBadMagicCookieSize.into();
        }
    };
    let data = read_buf(src, length)?;

    Ok(ALACSpecificBox { version, data })
}