11#include <promeki/config.h>
12#if PROMEKI_ENABLE_PROAV
21PROMEKI_NAMESPACE_BEGIN
61 enum FrameType : uint8_t {
65 DisposableInterFrame = 3,
66 GeneratedKeyframe = 4,
77 enum Codec : uint8_t {
92 enum AvcPacketType : uint8_t {
99 static constexpr uint32_t FourCcHvc1 = 0x68766331;
100 static constexpr uint32_t FourCcVp09 = 0x76703039;
101 static constexpr uint32_t FourCcAv01 = 0x61763031;
103 FrameType frameType = InterFrame;
105 AvcPacketType packetType = Nalu;
106 int32_t compositionTimeOffsetMs = 0;
115 Error pack(Buffer &out)
const;
125 static Error unpack(
const BufferView &in, FlvVideoTag &out);
147 enum SoundFormat : uint8_t {
148 LinearPcmPlatform = 0,
151 LinearPcmLittleEndian = 3,
164 enum SoundRate : uint8_t {
172 enum SoundSize : uint8_t { Bits8 = 0, Bits16 = 1 };
175 enum SoundType : uint8_t { Mono = 0, Stereo = 1 };
178 enum AacPacketType : uint8_t {
179 AudioSpecificConfig = 0,
183 SoundFormat format = Aac;
184 SoundRate rate = Rate44000;
185 SoundSize size = Bits16;
186 SoundType channelType = Stereo;
187 AacPacketType aacPacketType = Raw;
191 Error pack(Buffer &out)
const;
194 static Error unpack(
const BufferView &in, FlvAudioTag &out);
211 promeki::String name;
217 Error pack(Buffer &out)
const;
220 static Error unpack(
const BufferView &in, FlvScriptTag &out);