2018-03-06 23:17:35 +01:00
|
|
|
#ifndef TAG_PARSER_AACCODEBOOK_H
|
|
|
|
#define TAG_PARSER_AACCODEBOOK_H
|
|
|
|
|
|
|
|
// NOTE: The AAC parser is still WIP. It does not work yet and its API/ABI may change even in patch releases.
|
2015-09-06 19:57:33 +02:00
|
|
|
|
2019-06-12 20:40:45 +02:00
|
|
|
#include "../global.h"
|
2019-03-13 19:06:42 +01:00
|
|
|
|
|
|
|
#include <cstdint>
|
2015-09-06 19:57:33 +02:00
|
|
|
|
2018-03-06 23:17:35 +01:00
|
|
|
namespace TagParser {
|
2015-09-06 19:57:33 +02:00
|
|
|
|
2018-06-03 20:41:23 +02:00
|
|
|
/// \cond
|
|
|
|
|
2019-06-12 20:40:45 +02:00
|
|
|
struct TAG_PARSER_EXPORT AacHcb {
|
2019-03-13 19:06:42 +01:00
|
|
|
std::uint8_t offset;
|
|
|
|
std::uint8_t extraBits;
|
2015-09-06 19:57:33 +02:00
|
|
|
};
|
|
|
|
|
2019-06-12 20:40:45 +02:00
|
|
|
struct TAG_PARSER_EXPORT AacHcb2Pair {
|
2019-03-13 19:06:42 +01:00
|
|
|
std::uint8_t bits;
|
|
|
|
std::int8_t x;
|
|
|
|
std::int8_t y;
|
2015-09-06 19:57:33 +02:00
|
|
|
};
|
|
|
|
|
2019-06-12 20:40:45 +02:00
|
|
|
struct TAG_PARSER_EXPORT AacHcb2Quad {
|
2019-03-13 19:06:42 +01:00
|
|
|
std::uint8_t bits;
|
|
|
|
std::int8_t x;
|
|
|
|
std::int8_t y;
|
|
|
|
std::int8_t v;
|
|
|
|
std::int8_t w;
|
2015-09-06 19:57:33 +02:00
|
|
|
};
|
|
|
|
|
2019-06-12 20:40:45 +02:00
|
|
|
struct TAG_PARSER_EXPORT AacHcbBinPair {
|
2019-03-13 19:06:42 +01:00
|
|
|
std::uint8_t isLeaf;
|
|
|
|
std::int8_t data[2];
|
2015-09-06 19:57:33 +02:00
|
|
|
};
|
|
|
|
|
2019-06-12 20:40:45 +02:00
|
|
|
struct TAG_PARSER_EXPORT AacHcbBinQuad {
|
2019-03-13 19:06:42 +01:00
|
|
|
std::uint8_t isLeaf;
|
|
|
|
std::int8_t data[4];
|
2015-09-06 19:57:33 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
extern const AacHcb *const aacHcbTable[];
|
|
|
|
extern const AacHcb2Pair *const aacHcb2PairTable[];
|
|
|
|
extern const AacHcb2Quad *const aacHcb2QuadTable[];
|
|
|
|
extern const AacHcbBinPair *const aacHcbBinTable[];
|
2019-03-13 19:06:42 +01:00
|
|
|
extern const std::uint8_t aacHcbN[];
|
2015-09-06 19:57:33 +02:00
|
|
|
extern const int aacHcb2QuadTableSize[];
|
|
|
|
extern const int aacHcb2PairTableSize[];
|
|
|
|
extern const int aacHcbBinTableSize[];
|
|
|
|
|
|
|
|
extern const AacHcb aacHcb1Step1[];
|
|
|
|
extern const AacHcb2Quad aacHcb1Step2[];
|
|
|
|
extern const AacHcb aacHcb2Step1[];
|
|
|
|
extern const AacHcb2Quad aacHcb2Step2[];
|
|
|
|
extern const AacHcbBinQuad aacHcb3[];
|
|
|
|
extern const AacHcb aacHcb4Step1[];
|
|
|
|
extern const AacHcb2Quad aacHcb4Step2[];
|
|
|
|
extern const AacHcbBinPair aacHcb5[];
|
|
|
|
extern const AacHcb aacHcb6Step1[];
|
|
|
|
extern const AacHcb2Pair aacHcb6Step2[];
|
|
|
|
extern const AacHcbBinPair aacHcb7[];
|
|
|
|
extern const AacHcb aacHcb8Step1[];
|
|
|
|
extern const AacHcb2Pair aacHcb8Step2[];
|
|
|
|
extern const AacHcbBinPair aacHcb9[];
|
|
|
|
extern const AacHcb aacHcb10Step1[];
|
|
|
|
extern const AacHcb2Pair aacHcb10Step2[];
|
|
|
|
extern const AacHcb aacHcb11Step1[];
|
|
|
|
extern const AacHcb2Pair aacHcb11Step2[];
|
2019-03-13 19:06:42 +01:00
|
|
|
extern const std::uint8_t aacHcbSf[][2];
|
|
|
|
|
|
|
|
extern const std::int8_t tHuffmanEnv15dB[120][2];
|
|
|
|
extern const std::int8_t fHuffmanEnv15dB[120][2];
|
|
|
|
extern const std::int8_t tHuffmanEnvBal15dB[48][2];
|
|
|
|
extern const std::int8_t fHuffmanEnvBal15dB[48][2];
|
|
|
|
extern const std::int8_t tHuffmanEnv30dB[62][2];
|
|
|
|
extern const std::int8_t fHuffmanEnv30dB[62][2];
|
|
|
|
extern const std::int8_t tHuffmanEnvBal30dB[24][2];
|
|
|
|
extern const std::int8_t fHuffmanEnvBal30dB[24][2];
|
|
|
|
extern const std::int8_t tHuffmanNoise30dB[62][2];
|
|
|
|
extern const std::int8_t tHuffmanNoiseBal30dB[24][2];
|
2015-09-06 19:57:33 +02:00
|
|
|
|
2018-06-03 20:41:23 +02:00
|
|
|
/// \endcond
|
|
|
|
|
2018-03-07 01:17:50 +01:00
|
|
|
} // namespace TagParser
|
2015-09-06 19:57:33 +02:00
|
|
|
|
2018-03-06 23:17:35 +01:00
|
|
|
#endif // TAG_PARSER_AACCODEBOOK_H
|