9inline uint16_t ReadU16BE(
const uint8_t* p) {
10 return static_cast<uint16_t
>((p[0] << 8) | p[1]);
13inline int16_t ReadS16BE(
const uint8_t* p) {
14 return static_cast<int16_t
>(ReadU16BE(p));
17inline uint32_t ReadU32BE(
const uint8_t* p) {
18 return ((uint32_t)p[0] << 24) | ((uint32_t)p[1] << 16) | ((uint32_t)p[2] << 8) | (uint32_t)p[3];
21inline int32_t ReadS32BE(
const uint8_t* p) {
22 return static_cast<int32_t
>(ReadU32BE(p));
25inline void WriteU32BE(uint8_t* p, uint32_t value) {
26 p[0] =
static_cast<uint8_t
>(value >> 24);
27 p[1] =
static_cast<uint8_t
>(value >> 16);
28 p[2] =
static_cast<uint8_t
>(value >> 8);
29 p[3] =
static_cast<uint8_t
>(value);
32inline void PushBE(std::vector<uint8_t>& out, uint32_t value,
int bytes) {
33 for (
int i = bytes - 1; i >= 0; i--) {
34 out.push_back(
static_cast<uint8_t
>(value >> (i * 8)));