stream-deploy/ZLM/3rdpart/media-server/librtmp/include/rtmp-util.h

56 lines
1.3 KiB
C++

#ifndef _rtmp_util_h_
#define _rtmp_util_h_
#include <stdint.h>
static inline void be_write_uint16(uint8_t* ptr, uint16_t val)
{
ptr[0] = (uint8_t)((val >> 8) & 0xFF);
ptr[1] = (uint8_t)(val & 0xFF);
}
static inline void be_write_uint24(uint8_t* ptr, uint32_t val)
{
ptr[0] = (uint8_t)((val >> 16) & 0xFF);
ptr[1] = (uint8_t)((val >> 8) & 0xFF);
ptr[2] = (uint8_t)(val & 0xFF);
}
static inline void be_write_uint32(uint8_t* ptr, uint32_t val)
{
ptr[0] = (uint8_t)((val >> 24) & 0xFF);
ptr[1] = (uint8_t)((val >> 16) & 0xFF);
ptr[2] = (uint8_t)((val >> 8) & 0xFF);
ptr[3] = (uint8_t)(val & 0xFF);
}
static inline void be_read_uint16(const uint8_t* ptr, uint16_t* val)
{
*val = (ptr[0] << 8) | ptr[1];
}
static inline void be_read_uint24(const uint8_t* ptr, uint32_t* val)
{
*val = (ptr[0] << 16) | (ptr[1] << 8) | ptr[2];
}
static inline void be_read_uint32(const uint8_t* ptr, uint32_t* val)
{
*val = (ptr[0] << 24) | (ptr[1] << 16) | (ptr[2] << 8) | ptr[3];
}
static inline void le_write_uint32(uint8_t* ptr, uint32_t val)
{
ptr[3] = (uint8_t)((val >> 24) & 0xFF);
ptr[2] = (uint8_t)((val >> 16) & 0xFF);
ptr[1] = (uint8_t)((val >> 8) & 0xFF);
ptr[0] = (uint8_t)(val & 0xFF);
}
static inline void le_read_uint32(const uint8_t* ptr, uint32_t* val)
{
*val = ptr[0] | (ptr[1] << 8) | (ptr[2] << 16) | (ptr[3] << 24);
}
#endif /* !_rtmp_util_h_ */