11#include <promeki/config.h>
12#if PROMEKI_ENABLE_PROAV
21PROMEKI_NAMESPACE_BEGIN
65struct HevcDecoderConfig {
66 uint8_t configurationVersion = 1;
67 uint8_t generalProfileSpace = 0;
68 uint8_t generalTierFlag = 0;
69 uint8_t generalProfileIdc = 0;
70 uint32_t generalProfileCompatibilityFlags = 0;
71 uint64_t generalConstraintIndicatorFlags = 0;
72 uint8_t generalLevelIdc = 0;
73 uint16_t minSpatialSegmentationIdc = 0;
74 uint8_t parallelismType = 0;
75 uint8_t chromaFormat = 1;
76 uint8_t bitDepthLumaMinus8 = 0;
77 uint8_t bitDepthChromaMinus8 = 0;
78 uint16_t avgFrameRate = 0;
79 uint8_t constantFrameRate = 0;
80 uint8_t numTemporalLayers = 1;
81 uint8_t temporalIdNested = 0;
82 uint8_t lengthSizeMinusOne = 3;
105 static Error fromAnnexB(
const BufferView &au, HevcDecoderConfig &out);
113 static Error parse(
const BufferView &payload, HevcDecoderConfig &out);
116 Error serialize(Buffer &outBuf)
const;
123 Error toAnnexB(Buffer &outBuf)
const;
138 static bool isIrapAnnexB(
const BufferView &au);
150 uint8_t chromaFormatIdc = 1;
151 uint8_t bitDepthLumaMinus8 = 0;
152 uint8_t bitDepthChromaMinus8 = 0;
184 static Error parseSpsResolution(
const BufferView &sps, SpsInfo &out);