TSDuck v3.40-4033
MPEG Transport Stream Toolkit
Loading...
Searching...
No Matches
tsMemory.h File Reference

Utility routines for memory operations. More...

Namespaces

namespace  ts
 TSDuck namespace, containing all TSDuck classes and functions.
 

Macros

#define TS_ZERO(var)   ts::MemZero(&(var), sizeof(var))
 Zeroing an plain memory variable.
 

Functions

template<typename INT >
requires std::integral<INT>
INT ts::GetInt (const void *p)
 Template function getting an integer from serialized data in big endian representation.
 
template<typename INT >
requires std::integral<INT>
void ts::GetInt (const void *p, INT &i)
 Template function getting an integer from serialized data in big endian representation.
 
int16_t ts::GetInt16 (const void *p)
 Function getting a 16-bit signed integer from serialized data in big endian representation.
 
void ts::GetInt16 (const void *p, int16_t &i)
 Function getting a 16-bit signed integer from serialized data in big endian representation.
 
int16_t ts::GetInt16BE (const void *p)
 Function getting a 16-bit signed integer from serialized data in big endian representation.
 
void ts::GetInt16BE (const void *p, int16_t &i)
 Function getting a 16-bit signed integer from serialized data in big endian representation.
 
int16_t ts::GetInt16LE (const void *p)
 Function getting a 16-bit signed integer from serialized data in little endian representation.
 
void ts::GetInt16LE (const void *p, int16_t &i)
 Function getting a 16-bit signed integer from serialized data in little endian representation.
 
int32_t ts::GetInt24 (const void *p)
 Function getting a 24-bit signed integer from serialized data in big endian representation.
 
void ts::GetInt24 (const void *p, int32_t &i)
 Function getting a 24-bit signed integer from serialized data in big endian representation.
 
int32_t ts::GetInt24BE (const void *p)
 Function getting a 24-bit signed integer from serialized data in big endian representation.
 
void ts::GetInt24BE (const void *p, int32_t &i)
 Function getting a 24-bit signed integer from serialized data in big endian representation.
 
int32_t ts::GetInt24LE (const void *p)
 Function getting a 24-bit signed integer from serialized data in little endian representation.
 
void ts::GetInt24LE (const void *p, int32_t &i)
 Function getting a 24-bit signed integer from serialized data in little endian representation.
 
int32_t ts::GetInt32 (const void *p)
 Function getting a 32-bit signed integer from serialized data in big endian representation.
 
void ts::GetInt32 (const void *p, int32_t &i)
 Function getting a 32-bit signed integer from serialized data in big endian representation.
 
int32_t ts::GetInt32BE (const void *p)
 Function getting a 32-bit signed integer from serialized data in big endian representation.
 
void ts::GetInt32BE (const void *p, int32_t &i)
 Function getting a 32-bit signed integer from serialized data in big endian representation.
 
int32_t ts::GetInt32LE (const void *p)
 Function getting a 32-bit signed integer from serialized data in little endian representation.
 
void ts::GetInt32LE (const void *p, int32_t &i)
 Function getting a 32-bit signed integer from serialized data in little endian representation.
 
int64_t ts::GetInt40BE (const void *p)
 Function getting a 40-bit signed integer from serialized data in big endian representation.
 
int64_t ts::GetInt40LE (const void *p)
 Function getting a 40-bit signed integer from serialized data in little endian representation.
 
int64_t ts::GetInt48BE (const void *p)
 Function getting a 48-bit signed integer from serialized data in big endian representation.
 
int64_t ts::GetInt48LE (const void *p)
 Function getting a 48-bit signed integer from serialized data in little endian representation.
 
int64_t ts::GetInt64 (const void *p)
 Function getting a 64-bit signed integer from serialized data in big endian representation.
 
void ts::GetInt64 (const void *p, int64_t &i)
 Function getting a 64-bit signed integer from serialized data in big endian representation.
 
int64_t ts::GetInt64BE (const void *p)
 Function getting a 64-bit signed integer from serialized data in big endian representation.
 
void ts::GetInt64BE (const void *p, int64_t &i)
 Function getting a 64-bit signed integer from serialized data in big endian representation.
 
int64_t ts::GetInt64LE (const void *p)
 Function getting a 64-bit signed integer from serialized data in little endian representation.
 
void ts::GetInt64LE (const void *p, int64_t &i)
 Function getting a 64-bit signed integer from serialized data in little endian representation.
 
int8_t ts::GetInt8 (const void *p)
 Function getting an 8-bit signed integer from serialized data.
 
void ts::GetInt8 (const void *p, int8_t &i)
 Function getting an 8-bit signed integer from serialized data.
 
template<typename INT >
requires std::integral<INT>
INT ts::GetIntBE (const void *p)
 Template function getting an integer from serialized data in big endian representation.
 
template<typename INT >
requires std::integral<INT>
void ts::GetIntBE (const void *p, INT &i)
 Template function getting an integer from serialized data in big endian representation.
 
template<typename INT >
requires std::integral<INT>
INT ts::GetIntLE (const void *p)
 Template function getting an integer from serialized data in little endian representation.
 
template<typename INT >
requires std::integral<INT>
void ts::GetIntLE (const void *p, INT &i)
 Template function getting an integer from serialized data in little endian representation.
 
template<typename INT >
requires std::integral<INT>
INT ts::GetIntVar (const void *p, size_t size)
 Template function getting a variable-length integer from serialized data in big endian representation.
 
template<typename INT >
requires std::integral<INT>
void ts::GetIntVar (const void *p, size_t size, INT &i)
 Template function getting a variable-length integer from serialized data in big endian representation.
 
template<typename INT >
requires std::integral<INT>
INT ts::GetIntVarBE (const void *p, size_t size)
 Template function getting a variable-length integer from serialized data in big endian representation.
 
template<typename INT >
requires std::integral<INT>
void ts::GetIntVarBE (const void *p, size_t size, INT &i)
 Template function getting a variable-length integer from serialized data in big endian representation.
 
template<typename INT >
requires std::integral<INT>
INT ts::GetIntVarLE (const void *p, size_t size)
 Template function getting a variable-length integer from serialized data in little endian representation.
 
template<typename INT >
requires std::integral<INT>
void ts::GetIntVarLE (const void *p, size_t size, INT &i)
 Template function getting a variable-length integer from serialized data in little endian representation.
 
uint16_t ts::GetUInt16 (const void *p)
 Function getting a 16-bit unsigned integer from serialized data in big endian representation.
 
void ts::GetUInt16 (const void *p, uint16_t &i)
 Function getting a 16-bit unsigned integer from serialized data in big endian representation.
 
uint16_t ts::GetUInt16BE (const void *p)
 Function getting a 16-bit unsigned integer from serialized data in big endian representation.
 
void ts::GetUInt16BE (const void *p, uint16_t &i)
 Function getting a 16-bit unsigned integer from serialized data in big endian representation.
 
uint16_t ts::GetUInt16LE (const void *p)
 Function getting a 16-bit unsigned integer from serialized data in little endian representation.
 
void ts::GetUInt16LE (const void *p, uint16_t &i)
 Function getting a 16-bit unsigned integer from serialized data in little endian representation.
 
uint32_t ts::GetUInt24 (const void *p)
 Function getting a 24-bit unsigned integer from serialized data in big endian representation.
 
void ts::GetUInt24 (const void *p, uint32_t &i)
 Function getting a 24-bit unsigned integer from serialized data in big endian representation.
 
uint32_t ts::GetUInt24BE (const void *p)
 Function getting a 24-bit unsigned integer from serialized data in big endian representation.
 
void ts::GetUInt24BE (const void *p, uint32_t &i)
 Function getting a 24-bit unsigned integer from serialized data in big endian representation.
 
uint32_t ts::GetUInt24LE (const void *p)
 Function getting a 24-bit unsigned integer from serialized data in little endian representation.
 
void ts::GetUInt24LE (const void *p, uint32_t &i)
 Function getting a 24-bit unsigned integer from serialized data in little endian representation.
 
uint32_t ts::GetUInt32 (const void *p)
 Function getting a 32-bit unsigned integer from serialized data in big endian representation.
 
void ts::GetUInt32 (const void *p, uint32_t &i)
 Function getting a 32-bit unsigned integer from serialized data in big endian representation.
 
uint32_t ts::GetUInt32BE (const void *p)
 Function getting a 32-bit unsigned integer from serialized data in big endian representation.
 
void ts::GetUInt32BE (const void *p, uint32_t &i)
 Function getting a 32-bit unsigned integer from serialized data in big endian representation.
 
uint32_t ts::GetUInt32LE (const void *p)
 Function getting a 32-bit unsigned integer from serialized data in little endian representation.
 
void ts::GetUInt32LE (const void *p, uint32_t &i)
 Function getting a 32-bit unsigned integer from serialized data in little endian representation.
 
uint64_t ts::GetUInt40 (const void *p)
 Function getting a 40-bit unsigned integer from serialized data in big endian representation.
 
void ts::GetUInt40 (const void *p, uint64_t &i)
 Function getting a 40-bit unsigned integer from serialized data in big endian representation.
 
uint64_t ts::GetUInt40BE (const void *p)
 Function getting a 40-bit unsigned integer from serialized data in big endian representation.
 
uint64_t ts::GetUInt40LE (const void *p)
 Function getting a 40-bit unsigned integer from serialized data in little endian representation.
 
uint64_t ts::GetUInt48 (const void *p)
 Function getting a 48-bit unsigned integer from serialized data in big endian representation.
 
void ts::GetUInt48 (const void *p, uint64_t &i)
 Function getting a 48-bit unsigned integer from serialized data in big endian representation.
 
uint64_t ts::GetUInt48BE (const void *p)
 Function getting a 48-bit unsigned integer from serialized data in big endian representation.
 
uint64_t ts::GetUInt48LE (const void *p)
 Function getting a 48-bit unsigned integer from serialized data in little endian representation.
 
uint64_t ts::GetUInt64 (const void *p)
 Function getting a 64-bit unsigned integer from serialized data in big endian representation.
 
void ts::GetUInt64 (const void *p, uint64_t &i)
 Function getting a 64-bit unsigned integer from serialized data in big endian representation.
 
uint64_t ts::GetUInt64BE (const void *p)
 Function getting a 64-bit unsigned integer from serialized data in big endian representation.
 
void ts::GetUInt64BE (const void *p, uint64_t &i)
 Function getting a 64-bit unsigned integer from serialized data in big endian representation.
 
uint64_t ts::GetUInt64LE (const void *p)
 Function getting a 64-bit unsigned integer from serialized data in little endian representation.
 
void ts::GetUInt64LE (const void *p, uint64_t &i)
 Function getting a 64-bit unsigned integer from serialized data in little endian representation.
 
uint8_t ts::GetUInt8 (const void *p)
 Function getting an 8-bit unsigned integer from serialized data.
 
void ts::GetUInt8 (const void *p, uint8_t &i)
 Function getting an 8-bit unsigned integer from serialized data.
 
bool ts::IdenticalBytes (const void *area, size_t area_size)
 Check if a memory area contains all identical byte values.
 
const uint8_t * ts::LocatePattern (const void *area, size_t area_size, const void *pattern, size_t pattern_size)
 Locate a pattern into a memory area.
 
const uint8_t * ts::LocateZeroZero (const void *area, size_t area_size, uint8_t third)
 Locate a 3-byte pattern 00 00 XY into a memory area.
 
int ts::MemCompare (const void *addr1, const void *addr2, size_t size)
 Comparing two memory areas.
 
void ts::MemCopy (void *dest, const void *src, size_t size)
 Copying a memory area.
 
bool ts::MemEqual (const void *addr1, const void *addr2, size_t size)
 Check if two memory areas are identical.
 
void ts::MemSet (void *addr, uint8_t value, size_t size)
 Setting a memory area.
 
void ts::MemXor (void *dest, const void *src1, const void *src2, size_t size)
 Compute an exclusive or over memory areas.
 
void ts::MemZero (void *addr, size_t size)
 Zeroing a memory area.
 
template<typename INT >
requires std::integral<INT>
void ts::PutInt (void *p, INT i)
 Template function serializing an integer data in big endian representation.
 
void ts::PutInt16 (void *p, int16_t i)
 Function serializing a 16-bit signed integer data in big endian representation.
 
void ts::PutInt16BE (void *p, int16_t i)
 Function serializing a 16-bit signed integer data in big endian representation.
 
void ts::PutInt16LE (void *p, int16_t i)
 Function serializing a 16-bit signed integer data in little endian representation.
 
void ts::PutInt24 (void *p, int32_t i)
 Function serializing a 24-bit signed integer data in big endian representation.
 
void ts::PutInt24BE (void *p, int32_t i)
 Function serializing a 24-bit signed integer data in big endian representation.
 
void ts::PutInt24LE (void *p, int32_t i)
 Function serializing a 24-bit signed integer data in little endian representation.
 
void ts::PutInt32 (void *p, int32_t i)
 Function serializing a 32-bit signed integer data in big endian representation.
 
void ts::PutInt32BE (void *p, int32_t i)
 Function serializing a 32-bit signed integer data in big endian representation.
 
void ts::PutInt32LE (void *p, int32_t i)
 Function serializing a 32-bit signed integer data in little endian representation.
 
void ts::PutInt40BE (void *p, int64_t i)
 Function serializing a 40-bit signed integer data in big endian representation.
 
void ts::PutInt40LE (void *p, int64_t i)
 Function serializing a 40-bit signed integer data in little endian representation.
 
void ts::PutInt48BE (void *p, int64_t i)
 Function serializing a 48-bit signed integer data in big endian representation.
 
void ts::PutInt48LE (void *p, int64_t i)
 Function serializing a 48-bit signed integer data in little endian representation.
 
void ts::PutInt64 (void *p, int64_t i)
 Function serializing a 64-bit signed integer data in big endian representation.
 
void ts::PutInt64BE (void *p, int64_t i)
 Function serializing a 64-bit signed integer data in big endian representation.
 
void ts::PutInt64LE (void *p, int64_t i)
 Function serializing a 64-bit signed integer data in little endian representation.
 
void ts::PutInt8 (void *p, int8_t i)
 Function serializing an 8-bit signed integer data.
 
template<typename INT >
requires std::integral<INT>
void ts::PutIntBE (void *p, INT i)
 Template function serializing an integer data in big endian representation.
 
template<typename INT >
requires std::integral<INT>
void ts::PutIntLE (void *p, INT i)
 Template function serializing an integer data in little endian representation.
 
template<typename INT >
requires std::integral<INT>
void ts::PutIntVar (void *p, size_t size, INT i)
 Template function serializing a variable-length integer data in big endian representation.
 
template<typename INT >
requires std::integral<INT>
void ts::PutIntVarBE (void *p, size_t size, INT i)
 Template function serializing a variable-length integer data in big endian representation.
 
template<typename INT >
requires std::integral<INT>
void ts::PutIntVarLE (void *p, size_t size, INT i)
 Template function serializing a variable-length integer data in little endian representation.
 
void ts::PutUInt16 (void *p, uint16_t i)
 Function serializing a 16-bit unsigned integer data in big endian representation.
 
void ts::PutUInt16BE (void *p, uint16_t i)
 Function serializing a 16-bit unsigned integer data in big endian representation.
 
void ts::PutUInt16LE (void *p, uint16_t i)
 Function serializing a 16-bit unsigned integer data in little endian representation.
 
void ts::PutUInt24 (void *p, uint32_t i)
 Function serializing a 24-bit unsigned integer data in big endian representation.
 
void ts::PutUInt24BE (void *p, uint32_t i)
 Function serializing a 24-bit unsigned integer data in big endian representation.
 
void ts::PutUInt24LE (void *p, uint32_t i)
 Function serializing a 24-bit unsigned integer data in little endian representation.
 
void ts::PutUInt32 (void *p, uint32_t i)
 Function serializing a 32-bit unsigned integer data in big endian representation.
 
void ts::PutUInt32BE (void *p, uint32_t i)
 Function serializing a 32-bit unsigned integer data in big endian representation.
 
void ts::PutUInt32LE (void *p, uint32_t i)
 Function serializing a 32-bit unsigned integer data in little endian representation.
 
void ts::PutUInt40 (void *p, uint64_t i)
 Function serializing a 40-bit unsigned integer data in big endian representation.
 
void ts::PutUInt40BE (void *p, uint64_t i)
 Function serializing a 40-bit unsigned integer data in big endian representation.
 
void ts::PutUInt40LE (void *p, uint64_t i)
 Function serializing a 40-bit unsigned integer data in little endian representation.
 
void ts::PutUInt48 (void *p, uint64_t i)
 Function serializing a 48-bit unsigned integer data in big endian representation.
 
void ts::PutUInt48BE (void *p, uint64_t i)
 Function serializing a 48-bit unsigned integer data in big endian representation.
 
void ts::PutUInt48LE (void *p, uint64_t i)
 Function serializing a 48-bit unsigned integer data in little endian representation.
 
void ts::PutUInt64 (void *p, uint64_t i)
 Function serializing a 64-bit unsigned integer data in big endian representation.
 
void ts::PutUInt64BE (void *p, uint64_t i)
 Function serializing a 64-bit unsigned integer data in big endian representation.
 
void ts::PutUInt64LE (void *p, uint64_t i)
 Function serializing a 64-bit unsigned integer data in little endian representation.
 
void ts::PutUInt8 (void *p, uint8_t i)
 Function serializing an 8-bit unsigned integer data.
 
bool ts::StartsWith (const void *area, size_t area_size, const void *prefix, size_t prefix_size)
 Check if a memory area starts with the specified prefix.
 

Detailed Description

Utility routines for memory operations.

Macro Definition Documentation

◆ TS_ZERO

#define TS_ZERO (   var)    ts::MemZero(&(var), sizeof(var))

Zeroing an plain memory variable.

Do not use with instances of C++ classes.

Parameters
[out]varName of a variable.