45 std::vector<Atom *>
find(
const std::string &t);
54 void write(std::ofstream &out)
const;
59inline void write_u8(std::vector<uint8_t> &p, uint8_t v) { p.push_back(v); }
61inline void write_u16(std::vector<uint8_t> &p, uint16_t v) {
62 p.push_back((v >> 8) & 0xFF);
63 p.push_back(v & 0xFF);
66inline void write_u24(std::vector<uint8_t> &p, uint32_t v) {
67 p.push_back((v >> 16) & 0xFF);
68 p.push_back((v >> 8) & 0xFF);
69 p.push_back(v & 0xFF);
72inline void write_u32(std::vector<uint8_t> &p, uint32_t v) {
73 p.push_back((v >> 24) & 0xFF);
74 p.push_back((v >> 16) & 0xFF);
75 p.push_back((v >> 8) & 0xFF);
76 p.push_back(v & 0xFF);
79inline void write_u64(std::vector<uint8_t> &p, uint64_t v) {
80 p.push_back((v >> 56) & 0xFF);
81 p.push_back((v >> 48) & 0xFF);
82 p.push_back((v >> 40) & 0xFF);
83 p.push_back((v >> 32) & 0xFF);
84 p.push_back((v >> 24) & 0xFF);
85 p.push_back((v >> 16) & 0xFF);
86 p.push_back((v >> 8) & 0xFF);
87 p.push_back(v & 0xFF);
91 uint32_t v =
static_cast<uint32_t
>(f * 65536.0f);
Definition mp4_atoms.hpp:24
void write(std::ofstream &out) const
Atom(uint32_t t)
Definition mp4_atoms.hpp:33
uint32_t box_size
Definition mp4_atoms.hpp:30
std::vector< Atom * > find(const std::string &t)
static AtomPtr create(const std::string &t)
static AtomPtr create(uint32_t t)
Atom(const char t[4])
Definition mp4_atoms.hpp:34
static AtomPtr create(const char t[4])
std::vector< uint8_t > payload
Definition mp4_atoms.hpp:27
std::vector< AtomPtr > children
Definition mp4_atoms.hpp:28
uint32_t type
Definition mp4_atoms.hpp:26
void fix_size_recursive()
constexpr uint32_t fourcc(const char a, const char b, const char c, const char d)
Definition fourcc_utils.hpp:16
void write_u8(std::vector< uint8_t > &p, uint8_t v)
Definition mp4_atoms.hpp:59
void write_u24(std::vector< uint8_t > &p, uint32_t v)
Definition mp4_atoms.hpp:66
void write_u64(std::vector< uint8_t > &p, uint64_t v)
Definition mp4_atoms.hpp:79
void write_u32(std::vector< uint8_t > &p, uint32_t v)
Definition mp4_atoms.hpp:72
void write_u16(std::vector< uint8_t > &p, uint16_t v)
Definition mp4_atoms.hpp:61
void write_fixed16_16(std::vector< uint8_t > &out, float f)
Definition mp4_atoms.hpp:90
std::unique_ptr< Atom > AtomPtr
Definition mp4_atoms.hpp:22