Contrary to what one might believe, this actually reduces the size of
the structs due to alignment constraints. On Linux x86-64 clang/gcc it
reduces the size of the caption_frame_t struct from 7760 bytes to 6800
bytes, on Windows x86-64 MSVC from 11600 bytes to 6800 bytes.
It also causes simpler and potentially faster assembly to be generated
as the values can be directly accessed as uint8_t instead of having to
extract the corresponding bits with bitwise operations.
…tructs with uint8_t
Contrary to what one might believe, this actually reduces the size of the structs due to alignment constraints. On Linux x86-64 clang/gcc it reduces the size of the caption_frame_t struct from 7760 bytes to 6800 bytes, on Windows x86-64 MSVC from 11600 bytes to 6800 bytes.
It also causes simpler and potentially faster assembly to be generated as the values can be directly accessed as uint8_t instead of having to extract the corresponding bits with bitwise operations.