27 constexpr auto idSize = 0x05, mappingHeaderSize = 0x0D, blockHeaderSize = 0x04, streamInfoSize = 0x22;
28 char buff[mappingHeaderSize + blockHeaderSize + streamInfoSize - idSize];
29 iterator.
read(buff, idSize);
30 if (*buff != 0x7Fu || BE::toInt<std::uint32_t>(buff + 1) != 0x464C4143u) {
33 iterator.
read(buff,
sizeof(buff));
36 m_majorVersion =
static_cast<std::uint8_t
>(*(buff + 0x00));
37 m_minorVersion =
static_cast<std::uint8_t
>(*(buff + 0x01));
38 m_headerCount = BE::toInt<std::uint16_t>(buff + 0x02);
39 if (BE::toInt<std::uint32_t>(buff + 0x04) != 0x664C6143u) {
45 header.
parseHeader(std::string_view(buff + mappingHeaderSize - idSize, blockHeaderSize));
49 if (header.
dataSize() < streamInfoSize) {
54 m_streamInfo.
parse(std::string_view(buff + mappingHeaderSize + blockHeaderSize - idSize, streamInfoSize));