24 #if defined(Q_OS_WIN) || defined(Q_OS_MAC)
25 # define htobe16(x) qToBigEndian(x)
26 # define htole16(x) qToLittleEndian(x)
27 # define be16toh(x) qFromBigEndian(x)
28 # define le16toh(x) qFromLittleEndian(x)
29 # define htobe32(x) qToBigEndian(x)
30 # define htole32(x) qToLittleEndian(x)
31 # define be32toh(x) qFromBigEndian(x)
32 # define le32toh(x) qFromLittleEndian(x)
33 # define htobe64(x) qToBigEndian(x)
34 # define htole64(x) qtoLittleEndian(x)
35 # define be64toh(x) qFromBigEndian(x)
36 # define le64toh(x) qFromLittleEndian(x)
41 struct AudioMetadata {
44 ambisonic_type =
"periphonic";
45 ambisonic_channel_ordering =
"ACN";
46 ambisonic_normalization =
"SN3D";
47 for ( uint32_t t=0; t<4; t++ )
50 uint32_t ambisonic_order;
51 std::string ambisonic_type;
52 std::string ambisonic_channel_ordering;
53 std::string ambisonic_normalization;
54 uint32_t channel_map[4];
61 static const char *TRAK_TYPE_VIDE =
"vide";
64 static const char *TAG_STCO =
"stco";
65 static const char *TAG_CO64 =
"co64";
66 static const char *TAG_FREE =
"free";
67 static const char *TAG_MDAT =
"mdat";
68 static const char *TAG_XML =
"xml ";
69 static const char *TAG_HDLR =
"hdlr";
70 static const char *TAG_FTYP =
"ftyp";
71 static const char *TAG_ESDS =
"esds";
72 static const char *TAG_SOUN =
"soun";
73 static const char *TAG_SA3D =
"SA3D";
76 static const char *TAG_MOOV =
"moov";
77 static const char *TAG_UDTA =
"udta";
78 static const char *TAG_META =
"meta";
79 static const char *TAG_TRAK =
"trak";
80 static const char *TAG_MDIA =
"mdia";
81 static const char *TAG_MINF =
"minf";
82 static const char *TAG_STBL =
"stbl";
83 static const char *TAG_STSD =
"stsd";
84 static const char *TAG_UUID =
"uuid";
85 static const char *TAG_WAVE =
"wave";
88 static const char *TAG_NONE =
"NONE";
89 static const char *TAG_RAW_ =
"raw ";
90 static const char *TAG_TWOS =
"twos";
91 static const char *TAG_SOWT =
"sowt";
92 static const char *TAG_FL32 =
"fl32";
93 static const char *TAG_FL64 =
"fl64";
94 static const char *TAG_IN24 =
"in24";
95 static const char *TAG_IN32 =
"in32";
96 static const char *TAG_ULAW =
"ulaw";
97 static const char *TAG_ALAW =
"alaw";
98 static const char *TAG_LPCM =
"lpcm";
99 static const char *TAG_MP4A =
"mp4a";
101 static const char * SOUND_SAMPLE_DESCRIPTIONS[12] = {
116 static const char * CONTAINERS_LIST[20] = {