#pragma endian big bitfield thirdByte { reserved : 4; pes_data_packet_header_length : 4; }; bitfield DataGroupHeader { data_group_id : 6; data_group_version : 2; data_group_link_number : 8; last_data_group_link_number : 8; }; struct DataGroup { u8 data_identifier; u8 private_stream_id; thirdByte thirdbyte; DataGroupHeader header_bitfield; u16 data_group_size; u8 data_group_byte[data_group_size]; u16 crc16; }; DataGroup header_bitfield @ 0x0000;