/// Read the extended header of an ID3v2.3 tag.
Read the extended header of an ID3v2.3 tag.
Read the extended header of an ID3v2 . 3 tag .
fn read_id3v2p3_extended_header<B: ByteStream>(reader: &mut B) -> Result<ExtendedHeader> {
    let size = reader.read_be_u32()?;
    let flags = reader.read_be_u16()?;
    let padding_size = reader.read_be_u32()?;
    if !(size == 6 || size == 10) {
        return decode_error("invalid extended header size");
    }
    let mut header = ExtendedHeader {
        padding_size: Some(padding_size),
        crc32: None,
        is_update: None,
        restrictions: None,
    };
    // CRC32 flag.
    if size == 10 && flags & 0x8000 != 0 {
        header.crc32 = Some(reader.read_be_u32()?);
    }
    Ok(header)
}
fn read_id3v2p3_extended_header < B : ByteStream > ( reader : & mut B ) -> Result < ExtendedHeader > { let size = reader . read_be_u32 ( ) ? ; let flags = reader . read_be_u16 ( ) ? ; let padding_size = reader . read_be_u32 ( ) ? ; if ! ( size == 6 || size == 10 ) { return decode_error ( " " ) ; } let mut header = ExtendedHeader { padding_size : Some ( padding_size ) , crc32 : None , is_update : None , restrictions : None , } ; // CRC32 flag. if size == 10 && flags & 0x8000 != 0 { header . crc32 = Some ( reader . read_be_u32 ( ) ? ) ; } Ok ( header ) }
Read the extended header of an ID3v2.3 tag.
Read the extended header of an ID3v2 . 3 tag .
reader
&mut B