|
11 | 11 | #define FLV_AUDIO_ADPCM (1 << 4)
|
12 | 12 | #define FLV_AUDIO_MP3 (2 << 4)
|
13 | 13 | #define FLV_AUDIO_LLPCM (3 << 4) // Linear PCM, little endian
|
| 14 | +#define FLV_AUDIO_FLAC (4 << 4) // Nellymoser16KMono -> FLAC(enhanced rtmp v2) |
| 15 | +#define FLV_AUDIO_EAC3 (5 << 4) // Nellymoser8KMono -> EAC3(enhanced rtmp v2) |
| 16 | +#define FLV_AUDIO_Nelly (6 << 4) // Nellymoser |
14 | 17 | #define FLV_AUDIO_G711A (7 << 4) // G711 A-law
|
15 | 18 | #define FLV_AUDIO_G711U (8 << 4) // G711 mu-law
|
| 19 | +#define FLV_AUDIO_FOURCC (9 << 4) // enhanced rtmp v2 |
16 | 20 | #define FLV_AUDIO_AAC (10 << 4)
|
17 | 21 | #define FLV_AUDIO_SPEEX (11 << 4)
|
| 22 | +#define FLV_AUDIO_AC3 (12 << 4) // enhanced rtmp v2 |
18 | 23 | #define FLV_AUDIO_OPUS (13 << 4)
|
19 | 24 | #define FLV_AUDIO_MP3_8K (14 << 4) // MP3 8 kHz
|
20 | 25 | #define FLV_AUDIO_DEVIDE (15 << 4) // Device-specific sound
|
21 | 26 | #define FLV_AUDIO_ASC (0x1000 | FLV_AUDIO_AAC) // AudioSpecificConfig(ISO-14496-3)
|
22 |
| -#define FLV_AUDIO_OPUS_HEAD (0x1100 | FLV_AUDIO_OPUS)// opus-codec.org |
| 27 | +#define FLV_AUDIO_OPUS_HEAD (0x1100 | FLV_AUDIO_OPUS) // opus-codec.org |
| 28 | +#define FLV_AUDIO_FLAC_HEAD (0x1200 | FLV_AUDIO_FLAC) // xiph.org/flac |
23 | 29 |
|
24 | 30 | // FLV Video Type
|
25 | 31 | #define FLV_VIDEO_H263 2 // Sorenson H.263
|
|
64 | 70 | // note: PacketTypeSequenceStart and PacketTypeMPEG2TSSequenceStart
|
65 | 71 | // are mutually exclusive
|
66 | 72 | FLV_PACKET_TYPE_MPEG2TS_SEQUENCE_START = 5,
|
| 73 | + |
| 74 | + // Turns on video multitrack mode |
| 75 | + FLV_PACKET_TYPE_MULTITRACK = 6, |
| 76 | + |
| 77 | + // audio |
| 78 | + FLV_AUDIO_PACKET_TYPE_MULTICHANNEL_CONFIG = 4, |
| 79 | + FLV_AUDIO_PACKET_TYPE_MULTITRACK = 5, // Turns on audio multitrack mode |
67 | 80 | };
|
68 | 81 |
|
69 | 82 | enum
|
@@ -95,11 +108,29 @@ enum
|
95 | 108 | FLV_SOUND_CHANNEL_STEREO = 1, // 2-channels
|
96 | 109 | };
|
97 | 110 |
|
| 111 | +// AvMultitrackType |
| 112 | +enum flv_audio_multi_track_e |
| 113 | +{ |
| 114 | + FLV_AUDIO_MULTI_TRACK_ONE = 0, // OneTrack |
| 115 | + FLV_AUDIO_MULTI_TRACK_MANY = 1, // ManyTracks |
| 116 | + FLV_AUDIO_MULTI_TRACK_MANY_CODECS = 2, // ManyTracksManyCodecs |
| 117 | + |
| 118 | + FLV_AUDIO_MULTI_TRACK_NONE = 255, |
| 119 | +}; |
| 120 | + |
98 | 121 | #define FLV_VIDEO_FOURCC(a, b, c, d) (((a) << 24) | ((b) << 16) | ((c) << 8) | (d))
|
99 | 122 |
|
100 |
| -#define FLV_VIDEO_FOURCC_AV1 FLV_VIDEO_FOURCC('a', 'v', '0', '1') |
101 | 123 | #define FLV_VIDEO_FOURCC_VP9 FLV_VIDEO_FOURCC('v', 'p', '0', '9')
|
102 |
| -#define FLV_VIDEO_FOURCC_HEVC FLV_VIDEO_FOURCC('h', 'v', 'c', '1') |
103 |
| -#define FLV_VIDEO_FOURCC_VVC FLV_VIDEO_FOURCC('v', 'v', 'c', '1') |
| 124 | +#define FLV_VIDEO_FOURCC_AV1 FLV_VIDEO_FOURCC('a', 'v', '0', '1') |
| 125 | +#define FLV_VIDEO_FOURCC_AVC FLV_VIDEO_FOURCC('a', 'v', 'c', '1') // H.264 |
| 126 | +#define FLV_VIDEO_FOURCC_HEVC FLV_VIDEO_FOURCC('h', 'v', 'c', '1') // H.265 |
| 127 | +#define FLV_VIDEO_FOURCC_VVC FLV_VIDEO_FOURCC('v', 'v', 'c', '1') // H.266 |
| 128 | + |
| 129 | +#define FLV_AUDIO_FOURCC_AC3 FLV_VIDEO_FOURCC('a', 'c', '-', '3') // AC-3/E-AC-3 - <https://en.wikipedia.org/wiki/Dolby_Digital> |
| 130 | +#define FLV_AUDIO_FOURCC_EAC3 FLV_VIDEO_FOURCC('e', 'c', '-', '3') |
| 131 | +#define FLV_AUDIO_FOURCC_OPUS FLV_VIDEO_FOURCC('O', 'p', 'u', 's') // Opus audio - <https://opus-codec.org/> |
| 132 | +#define FLV_AUDIO_FOURCC_MP3 FLV_VIDEO_FOURCC('.', 'm', 'p', '3') // Mp3 audio - <https://en.wikipedia.org/wiki/MP3> |
| 133 | +#define FLV_AUDIO_FOURCC_FLAC FLV_VIDEO_FOURCC('f', 'L', 'a', 'C') // Free Lossless Audio Codec - <https://xiph.org/flac/format.html> |
| 134 | +#define FLV_AUDIO_FOURCC_AAC FLV_VIDEO_FOURCC('m', 'p', '4', 'a') // Advanced Audio Coding - <https://en.wikipedia.org/wiki/Advanced_Audio_Coding> |
104 | 135 |
|
105 | 136 | #endif /* !_flv_proto_h_ */
|
0 commit comments