Skip to main content

mp4ra_rust/
generated.rs

1// --------
2// WARNING
3// This is generated code.
4// If you need changes, alter the mp4ra_crategen project, not this file.
5// --------
6impl HandlerCode {
7    /// 3GPP Scene Description
8    ///
9    /// FourCC: `3gsd`
10    ///
11    /// Specification: _3GPP_
12    pub const THREE_GSD: HandlerCode = HandlerCode::new(*b"3gsd");
13    /// Auxiliary video
14    ///
15    /// FourCC: `auxv`
16    ///
17    /// Specification: _ISO_
18    pub const AUXV: HandlerCode = HandlerCode::new(*b"auxv");
19    /// Avid Metadata
20    ///
21    /// FourCC: `avmd`
22    ///
23    /// Specification: _Avid_
24    pub const AVMD: HandlerCode = HandlerCode::new(*b"avmd");
25    /// Closed Caption
26    ///
27    /// FourCC: `clcp`
28    ///
29    /// Specification: _Apple_
30    pub const CLCP: HandlerCode = HandlerCode::new(*b"clcp");
31    /// CPCM Auxiliary Metadata
32    ///
33    /// FourCC: `cpad`
34    ///
35    /// Specification: _DVB_
36    pub const CPAD: HandlerCode = HandlerCode::new(*b"cpad");
37    /// ClockReferenceStream
38    ///
39    /// FourCC: `crsm`
40    ///
41    /// Specification: _MP4v2_
42    pub const CRSM: HandlerCode = HandlerCode::new(*b"crsm");
43    /// DVB Mandatory Metadata
44    ///
45    /// FourCC: `dmbd`
46    ///
47    /// Specification: _DVB_
48    pub const DMBD: HandlerCode = HandlerCode::new(*b"dmbd");
49    /// TV-Anytime Metadata, according to DVB specifications
50    ///
51    /// FourCC: `dtva`
52    ///
53    /// Specification: _DVB_
54    pub const DTVA: HandlerCode = HandlerCode::new(*b"dtva");
55    /// withdrawn, unused, do not use (was Dolby Vision Metadata)
56    ///
57    /// FourCC: `dvmd`
58    ///
59    /// Specification: _Deprecated_
60    pub const DVMD: HandlerCode = HandlerCode::new(*b"dvmd");
61    /// Font
62    ///
63    /// FourCC: `fdsm`
64    ///
65    /// Specification: _ISO_
66    pub const FDSM: HandlerCode = HandlerCode::new(*b"fdsm");
67    /// General MPEG-4 systems streams (without specific handler)
68    ///
69    /// FourCC: `gesm`
70    ///
71    /// Specification: _see (1) below_
72    pub const GESM: HandlerCode = HandlerCode::new(*b"gesm");
73    /// Subtitle Graphics
74    ///
75    /// FourCC: `GRAP`
76    ///
77    /// Specification: _Sony_
78    pub const GRAP: HandlerCode = HandlerCode::new(*b"GRAP");
79    /// Hint
80    ///
81    /// FourCC: `hint`
82    ///
83    /// Specification: _ISO_
84    pub const HINT: HandlerCode = HandlerCode::new(*b"hint");
85    /// Hipix Rich Picture Format
86    ///
87    /// FourCC: `hpix`
88    ///
89    /// Specification: _Hipix_
90    pub const HPIX: HandlerCode = HandlerCode::new(*b"hpix");
91    /// ID3 version 2 meta-data handler (meta box)
92    ///
93    /// FourCC: `ID32`
94    ///
95    /// Specification: _id3v2_
96    pub const ID32: HandlerCode = HandlerCode::new(*b"ID32");
97    /// DVB IPDC ESG Metadata
98    ///
99    /// FourCC: `ipdc`
100    ///
101    /// Specification: _DVB_
102    pub const IPDC: HandlerCode = HandlerCode::new(*b"ipdc");
103    /// IPMP Stream
104    ///
105    /// FourCC: `ipsm`
106    ///
107    /// Specification: _MP4v2_
108    pub const IPSM: HandlerCode = HandlerCode::new(*b"ipsm");
109    /// MPEG7Stream
110    ///
111    /// FourCC: `m7sm`
112    ///
113    /// Specification: _MP4v2_
114    pub const M7SM: HandlerCode = HandlerCode::new(*b"m7sm");
115    /// Metadata
116    ///
117    /// FourCC: `meta`
118    ///
119    /// Specification: _ISO_
120    pub const META: HandlerCode = HandlerCode::new(*b"meta");
121    /// MPEG-J Stream
122    ///
123    /// FourCC: `mjsm`
124    ///
125    /// Specification: _MP4v2_
126    pub const MJSM: HandlerCode = HandlerCode::new(*b"mjsm");
127    /// MPEG-21 Digital item
128    ///
129    /// FourCC: `mp21`
130    ///
131    /// Specification: _MPEG-21_
132    pub const MP21: HandlerCode = HandlerCode::new(*b"mp21");
133    /// MPEG-7 (binary meta-data)
134    ///
135    /// FourCC: `mp7b`
136    ///
137    /// Specification: _ISO_
138    pub const MP7B: HandlerCode = HandlerCode::new(*b"mp7b");
139    /// MPEG-7 (textual meta-data)
140    ///
141    /// FourCC: `mp7t`
142    ///
143    /// Specification: _ISO_
144    pub const MP7T: HandlerCode = HandlerCode::new(*b"mp7t");
145    /// MPD contained in a metabox
146    ///
147    /// FourCC: `mpd `
148    ///
149    /// Specification: _3GPP_
150    pub const MPD: HandlerCode = HandlerCode::new(*b"mpd ");
151    /// MPD link contained in a metabox
152    ///
153    /// FourCC: `mpdl`
154    ///
155    /// Specification: _3GPP_
156    pub const MPDL: HandlerCode = HandlerCode::new(*b"mpdl");
157    /// QuickTime MPEG track handler
158    ///
159    /// FourCC: `MPEG`
160    ///
161    /// Specification: _Apple_
162    pub const MPEG: HandlerCode = HandlerCode::new(*b"MPEG");
163    /// QuickTime Music track handler
164    ///
165    /// FourCC: `musi`
166    ///
167    /// Specification: _Apple_
168    pub const MUSI: HandlerCode = HandlerCode::new(*b"musi");
169    /// Non-Real Time Metadata (XAVC Format)
170    ///
171    /// FourCC: `nrtm`
172    ///
173    /// Specification: _Sony_
174    pub const NRTM: HandlerCode = HandlerCode::new(*b"nrtm");
175    /// No handling required (meta-data)
176    ///
177    /// FourCC: `null`
178    ///
179    /// Specification: _ISO_
180    pub const NULL: HandlerCode = HandlerCode::new(*b"null");
181    /// ObjectContentInfoStream
182    ///
183    /// FourCC: `ocsm`
184    ///
185    /// Specification: _MP4v2_
186    pub const OCSM: HandlerCode = HandlerCode::new(*b"ocsm");
187    /// ObjectDescriptorStream
188    ///
189    /// FourCC: `odsm`
190    ///
191    /// Specification: _MP4v2_
192    pub const ODSM: HandlerCode = HandlerCode::new(*b"odsm");
193    /// Image Item and Image sequences
194    ///
195    /// FourCC: `pict`
196    ///
197    /// Specification: _HEIF_
198    pub const PICT: HandlerCode = HandlerCode::new(*b"pict");
199    /// QuickTime QuickDraw 3D ttrack handler
200    ///
201    /// FourCC: `qd3d`
202    ///
203    /// Specification: _Apple_
204    pub const QD3D: HandlerCode = HandlerCode::new(*b"qd3d");
205    /// QuickTime Subtitle track handler
206    ///
207    /// FourCC: `sbtl`
208    ///
209    /// Specification: _Apple_
210    pub const SBTL: HandlerCode = HandlerCode::new(*b"sbtl");
211    /// SceneDescriptionStream
212    ///
213    /// FourCC: `sdsm`
214    ///
215    /// Specification: _MP4v2_
216    pub const SDSM: HandlerCode = HandlerCode::new(*b"sdsm");
217    /// Key Management Messages
218    ///
219    /// FourCC: `skmm`
220    ///
221    /// Specification: _DVB_
222    pub const SKMM: HandlerCode = HandlerCode::new(*b"skmm");
223    /// Samsung Video Metadata Handler
224    ///
225    /// FourCC: `smhr`
226    ///
227    /// Specification: _Samsung_
228    pub const SMHR: HandlerCode = HandlerCode::new(*b"smhr");
229    /// Audio
230    ///
231    /// FourCC: `soun`
232    ///
233    /// Specification: _ISO_
234    pub const SOUN: HandlerCode = HandlerCode::new(*b"soun");
235    /// QuickTime Sprite track handler
236    ///
237    /// FourCC: `sprt`
238    ///
239    /// Specification: _Apple_
240    pub const SPRT: HandlerCode = HandlerCode::new(*b"sprt");
241    /// QuickTime Streaming track handler
242    ///
243    /// FourCC: `strm`
244    ///
245    /// Specification: _Apple_
246    pub const STRM: HandlerCode = HandlerCode::new(*b"strm");
247    /// Subtitles
248    ///
249    /// FourCC: `subt`
250    ///
251    /// Specification: _ISO_
252    pub const SUBT: HandlerCode = HandlerCode::new(*b"subt");
253    /// Text
254    ///
255    /// FourCC: `text`
256    ///
257    /// Specification: _3GPP_
258    pub const TEXT: HandlerCode = HandlerCode::new(*b"text");
259    /// Timecode
260    ///
261    /// FourCC: `tmcd`
262    ///
263    /// Specification: _Apple_
264    pub const TMCD: HandlerCode = HandlerCode::new(*b"tmcd");
265    /// QuickTime Tween track handler
266    ///
267    /// FourCC: `twen`
268    ///
269    /// Specification: _Apple_
270    pub const TWEN: HandlerCode = HandlerCode::new(*b"twen");
271    /// URI identified metadata
272    ///
273    /// FourCC: `uri `
274    ///
275    /// Specification: _DVB_
276    pub const URI: HandlerCode = HandlerCode::new(*b"uri ");
277    /// Video
278    ///
279    /// FourCC: `vide`
280    ///
281    /// Specification: _ISO_
282    pub const VIDE: HandlerCode = HandlerCode::new(*b"vide");
283    /// Volumetric visual media
284    ///
285    /// FourCC: `volv`
286    ///
287    /// Specification: _ISO_
288    pub const VOLV: HandlerCode = HandlerCode::new(*b"volv");
289    /// Haptics
290    ///
291    /// FourCC: `hapt`
292    ///
293    /// Specification: _ISO_
294    pub const HAPT: HandlerCode = HandlerCode::new(*b"hapt");
295    /// Neural network handler (items defined in the MetaBox represent neural networks)
296    ///
297    /// FourCC: `nnet`
298    ///
299    /// Specification: _NALu Video_
300    pub const NNET: HandlerCode = HandlerCode::new(*b"nnet");
301}
302impl SampleEntryCode {
303    /// Return the identifier of a handler for this type of sample entry, if a single handler type is defined.  For those _sample entry_ types where MP4RA notes there are 'various' handlers, this method will return `None`
304    pub fn handler(&self) -> Option<HandlerCode> {
305        match *self {
306            SampleEntryCode::TWO_DCC => Some(HandlerCode::META),
307            SampleEntryCode::THREE_GLO => Some(HandlerCode::META),
308            SampleEntryCode::THREE_GOR => Some(HandlerCode::META),
309            SampleEntryCode::THREE_GVO => Some(HandlerCode::META),
310            SampleEntryCode::SIX_VPT => Some(HandlerCode::VOLV),
311            SampleEntryCode::A3D1 => Some(HandlerCode::VIDE),
312            SampleEntryCode::A3D2 => Some(HandlerCode::VIDE),
313            SampleEntryCode::A3D3 => Some(HandlerCode::VIDE),
314            SampleEntryCode::A3D4 => Some(HandlerCode::VIDE),
315            SampleEntryCode::A3DS => Some(HandlerCode::SOUN),
316            SampleEntryCode::AC_3 => Some(HandlerCode::SOUN),
317            SampleEntryCode::AC_4 => Some(HandlerCode::SOUN),
318            SampleEntryCode::ALAC => Some(HandlerCode::SOUN),
319            SampleEntryCode::ALAW => Some(HandlerCode::SOUN),
320            SampleEntryCode::AV01 => Some(HandlerCode::VIDE),
321            SampleEntryCode::AVC1 => Some(HandlerCode::VIDE),
322            SampleEntryCode::AVC2 => Some(HandlerCode::VIDE),
323            SampleEntryCode::AVC3 => Some(HandlerCode::VIDE),
324            SampleEntryCode::AVC4 => Some(HandlerCode::VIDE),
325            SampleEntryCode::AVCP => Some(HandlerCode::VIDE),
326            SampleEntryCode::AVST => Some(HandlerCode::VIDE),
327            SampleEntryCode::AVS3 => Some(HandlerCode::VIDE),
328            SampleEntryCode::CAMM => Some(HandlerCode::VIDE),
329            SampleEntryCode::CAVS => Some(HandlerCode::SOUN),
330            SampleEntryCode::AV3A => Some(HandlerCode::SOUN),
331            SampleEntryCode::DAV1 => Some(HandlerCode::VIDE),
332            SampleEntryCode::DEPI => Some(HandlerCode::META),
333            SampleEntryCode::DFCE => Some(HandlerCode::META),
334            SampleEntryCode::DIPI => Some(HandlerCode::META),
335            SampleEntryCode::DRA1 => Some(HandlerCode::SOUN),
336            SampleEntryCode::DRAC => Some(HandlerCode::VIDE),
337            SampleEntryCode::DTS_PLUS => Some(HandlerCode::SOUN),
338            SampleEntryCode::DTS_ => Some(HandlerCode::SOUN),
339            SampleEntryCode::DTSC => Some(HandlerCode::SOUN),
340            SampleEntryCode::DTSE => Some(HandlerCode::SOUN),
341            SampleEntryCode::DTSH => Some(HandlerCode::SOUN),
342            SampleEntryCode::DTSL => Some(HandlerCode::SOUN),
343            SampleEntryCode::DTSX => Some(HandlerCode::SOUN),
344            SampleEntryCode::DTSY => Some(HandlerCode::SOUN),
345            SampleEntryCode::DVA1 => Some(HandlerCode::VIDE),
346            SampleEntryCode::DVAV => Some(HandlerCode::VIDE),
347            SampleEntryCode::DVH1 => Some(HandlerCode::VIDE),
348            SampleEntryCode::DVHE => Some(HandlerCode::VIDE),
349            SampleEntryCode::DYOL => Some(HandlerCode::META),
350            SampleEntryCode::DYVM => Some(HandlerCode::VOLV),
351            SampleEntryCode::DYVP => Some(HandlerCode::META),
352            SampleEntryCode::EC_3 => Some(HandlerCode::SOUN),
353            SampleEntryCode::EC_PLUS_3 => Some(HandlerCode::SOUN),
354            SampleEntryCode::ENCA => Some(HandlerCode::SOUN),
355            SampleEntryCode::ENCF => Some(HandlerCode::FDSM),
356            SampleEntryCode::ENCM => Some(HandlerCode::META),
357            SampleEntryCode::ENCS => None,
358            SampleEntryCode::ENCT => Some(HandlerCode::TEXT),
359            SampleEntryCode::ENCV => Some(HandlerCode::VIDE),
360            SampleEntryCode::EVC1 => Some(HandlerCode::VIDE),
361            SampleEntryCode::EVM1 => Some(HandlerCode::VIDE),
362            SampleEntryCode::EVS1 => Some(HandlerCode::VIDE),
363            SampleEntryCode::EVS2 => Some(HandlerCode::VIDE),
364            SampleEntryCode::EVTE => Some(HandlerCode::META),
365            SampleEntryCode::FDP => Some(HandlerCode::HINT),
366            SampleEntryCode::FFV1 => Some(HandlerCode::VIDE),
367            SampleEntryCode::FLAC => Some(HandlerCode::SOUN),
368            SampleEntryCode::G719 => Some(HandlerCode::SOUN),
369            SampleEntryCode::G726 => Some(HandlerCode::SOUN),
370            SampleEntryCode::HEV1 => Some(HandlerCode::VIDE),
371            SampleEntryCode::HEV2 => Some(HandlerCode::VIDE),
372            SampleEntryCode::HEV3 => Some(HandlerCode::VIDE),
373            SampleEntryCode::HVC1 => Some(HandlerCode::VIDE),
374            SampleEntryCode::HVC2 => Some(HandlerCode::VIDE),
375            SampleEntryCode::HVC3 => Some(HandlerCode::VIDE),
376            SampleEntryCode::HVT1 => Some(HandlerCode::VIDE),
377            SampleEntryCode::HVT2 => Some(HandlerCode::VIDE),
378            SampleEntryCode::HVT3 => Some(HandlerCode::VIDE),
379            SampleEntryCode::ICPV => Some(HandlerCode::VIDE),
380            SampleEntryCode::ICP3 => Some(HandlerCode::VOLV),
381            SampleEntryCode::ICPA => Some(HandlerCode::SOUN),
382            SampleEntryCode::ICPH => Some(HandlerCode::HINT),
383            SampleEntryCode::ICPM => Some(HandlerCode::META),
384            SampleEntryCode::ICPP => Some(HandlerCode::HAPT),
385            SampleEntryCode::ICPS => None,
386            SampleEntryCode::ICPT => Some(HandlerCode::TEXT),
387            SampleEntryCode::INVO => Some(HandlerCode::META),
388            SampleEntryCode::INVP => Some(HandlerCode::META),
389            SampleEntryCode::IXSE => Some(HandlerCode::META),
390            SampleEntryCode::J2KI => Some(HandlerCode::VIDE),
391            SampleEntryCode::JXSM => Some(HandlerCode::VIDE),
392            SampleEntryCode::LHE1 => Some(HandlerCode::VIDE),
393            SampleEntryCode::LHT1 => Some(HandlerCode::VIDE),
394            SampleEntryCode::LHV1 => Some(HandlerCode::VIDE),
395            SampleEntryCode::M2TS => Some(HandlerCode::HINT),
396            SampleEntryCode::M4AE => Some(HandlerCode::SOUN),
397            SampleEntryCode::MEBX => Some(HandlerCode::META),
398            SampleEntryCode::METT => Some(HandlerCode::META),
399            SampleEntryCode::METX => Some(HandlerCode::META),
400            SampleEntryCode::MHA1 => Some(HandlerCode::SOUN),
401            SampleEntryCode::MHA2 => Some(HandlerCode::SOUN),
402            SampleEntryCode::MHM1 => Some(HandlerCode::SOUN),
403            SampleEntryCode::MHM2 => Some(HandlerCode::SOUN),
404            SampleEntryCode::MJP2 => Some(HandlerCode::VIDE),
405            SampleEntryCode::MJPG => Some(HandlerCode::VIDE),
406            SampleEntryCode::MLIX => Some(HandlerCode::META),
407            SampleEntryCode::MLPA => Some(HandlerCode::SOUN),
408            SampleEntryCode::MP4A => Some(HandlerCode::SOUN),
409            SampleEntryCode::MP4S => None,
410            SampleEntryCode::MP4V => Some(HandlerCode::VIDE),
411            SampleEntryCode::MVC1 => Some(HandlerCode::VIDE),
412            SampleEntryCode::MVC2 => Some(HandlerCode::VIDE),
413            SampleEntryCode::MVC3 => Some(HandlerCode::VIDE),
414            SampleEntryCode::MVC4 => Some(HandlerCode::VIDE),
415            SampleEntryCode::MVD1 => Some(HandlerCode::VIDE),
416            SampleEntryCode::MVD2 => Some(HandlerCode::VIDE),
417            SampleEntryCode::MVD3 => Some(HandlerCode::VIDE),
418            SampleEntryCode::MVD4 => Some(HandlerCode::VIDE),
419            SampleEntryCode::OCPC => Some(HandlerCode::META),
420            SampleEntryCode::OKSD => Some(HandlerCode::META),
421            SampleEntryCode::OPUS => Some(HandlerCode::SOUN),
422            SampleEntryCode::PM2T => Some(HandlerCode::HINT),
423            SampleEntryCode::PRTP => Some(HandlerCode::HINT),
424            SampleEntryCode::RAW => Some(HandlerCode::SOUN),
425            SampleEntryCode::RCVP => Some(HandlerCode::META),
426            SampleEntryCode::RESV => Some(HandlerCode::VIDE),
427            SampleEntryCode::RESA => Some(HandlerCode::SOUN),
428            SampleEntryCode::RM2T => Some(HandlerCode::HINT),
429            SampleEntryCode::RRTP => Some(HandlerCode::HINT),
430            SampleEntryCode::RSRP => Some(HandlerCode::HINT),
431            SampleEntryCode::RTCP => Some(HandlerCode::HINT),
432            SampleEntryCode::RTMD => Some(HandlerCode::META),
433            SampleEntryCode::RTP => Some(HandlerCode::HINT),
434            SampleEntryCode::RV60 => Some(HandlerCode::VIDE),
435            SampleEntryCode::RVP2 => Some(HandlerCode::META),
436            SampleEntryCode::S263 => Some(HandlerCode::VIDE),
437            SampleEntryCode::SAMR => Some(HandlerCode::SOUN),
438            SampleEntryCode::SAWB => Some(HandlerCode::SOUN),
439            SampleEntryCode::SAWP => Some(HandlerCode::SOUN),
440            SampleEntryCode::SBTT => Some(HandlerCode::SUBT),
441            SampleEntryCode::SEVC => Some(HandlerCode::SOUN),
442            SampleEntryCode::SEVS => Some(HandlerCode::SOUN),
443            SampleEntryCode::SM2T => Some(HandlerCode::HINT),
444            SampleEntryCode::SQCP => Some(HandlerCode::SOUN),
445            SampleEntryCode::SRTP => Some(HandlerCode::HINT),
446            SampleEntryCode::SSMV => Some(HandlerCode::SOUN),
447            SampleEntryCode::STCP => Some(HandlerCode::HINT),
448            SampleEntryCode::STGS => Some(HandlerCode::GRAP),
449            SampleEntryCode::STMD => Some(HandlerCode::META),
450            SampleEntryCode::STPP => Some(HandlerCode::SUBT),
451            SampleEntryCode::STXT => Some(HandlerCode::TEXT),
452            SampleEntryCode::SVC1 => Some(HandlerCode::VIDE),
453            SampleEntryCode::SVC2 => Some(HandlerCode::VIDE),
454            SampleEntryCode::SVCM => Some(HandlerCode::META),
455            SampleEntryCode::TC64 => Some(HandlerCode::TMCD),
456            SampleEntryCode::TMCD => Some(HandlerCode::TMCD),
457            SampleEntryCode::TTSL => Some(HandlerCode::META),
458            SampleEntryCode::TWOS => Some(HandlerCode::SOUN),
459            SampleEntryCode::TX3G => Some(HandlerCode::TEXT),
460            SampleEntryCode::ULAW => Some(HandlerCode::SOUN),
461            SampleEntryCode::UNID => Some(HandlerCode::META),
462            SampleEntryCode::URIM => Some(HandlerCode::META),
463            SampleEntryCode::V3A1 => Some(HandlerCode::VOLV),
464            SampleEntryCode::V3AG => Some(HandlerCode::VOLV),
465            SampleEntryCode::V3C1 => Some(HandlerCode::VOLV),
466            SampleEntryCode::V3CB => Some(HandlerCode::VOLV),
467            SampleEntryCode::V3CG => Some(HandlerCode::VOLV),
468            SampleEntryCode::V3E1 => Some(HandlerCode::VOLV),
469            SampleEntryCode::V3EG => Some(HandlerCode::VOLV),
470            SampleEntryCode::V3T1 => Some(HandlerCode::VOLV),
471            SampleEntryCode::VC_1 => Some(HandlerCode::VIDE),
472            SampleEntryCode::VP08 => Some(HandlerCode::VIDE),
473            SampleEntryCode::VP09 => Some(HandlerCode::VIDE),
474            SampleEntryCode::VQME => Some(HandlerCode::META),
475            SampleEntryCode::VRSP => Some(HandlerCode::META),
476            SampleEntryCode::VVCN => Some(HandlerCode::VIDE),
477            SampleEntryCode::VVC1 => Some(HandlerCode::VIDE),
478            SampleEntryCode::VVI1 => Some(HandlerCode::VIDE),
479            SampleEntryCode::VVS1 => Some(HandlerCode::VIDE),
480            SampleEntryCode::WVTT => Some(HandlerCode::TEXT),
481            SampleEntryCode::ENCU => Some(HandlerCode::SUBT),
482            SampleEntryCode::ENCP => Some(HandlerCode::HAPT),
483            SampleEntryCode::ENC3 => Some(HandlerCode::VOLV),
484            SampleEntryCode::UNCV => Some(HandlerCode::VIDE),
485            SampleEntryCode::IAMF => Some(HandlerCode::SOUN),
486            SampleEntryCode::IPCM => Some(HandlerCode::SOUN),
487            SampleEntryCode::FPCM => Some(HandlerCode::SOUN),
488            SampleEntryCode::CNDM => Some(HandlerCode::VIDE),
489            SampleEntryCode::LVC1 => Some(HandlerCode::VIDE),
490            SampleEntryCode::APAC => Some(HandlerCode::SOUN),
491            SampleEntryCode::APV1 => Some(HandlerCode::VIDE),
492            _ => None,
493        }
494    }
495}
496impl SampleEntryCode {
497    /// 2D cartesian coordinates
498    ///
499    /// FourCC: `2dcc`
500    ///
501    /// Specification: _Metrics_
502    pub const TWO_DCC: SampleEntryCode = SampleEntryCode::new(*b"2dcc");
503    /// 3GPP Location
504    ///
505    /// FourCC: `3glo`
506    ///
507    /// Specification: _3GPP_
508    pub const THREE_GLO: SampleEntryCode = SampleEntryCode::new(*b"3glo");
509    /// 3GPP Orientation
510    ///
511    /// FourCC: `3gor`
512    ///
513    /// Specification: _3GPP_
514    pub const THREE_GOR: SampleEntryCode = SampleEntryCode::new(*b"3gor");
515    /// 3GPP Video Orientation
516    ///
517    /// FourCC: `3gvo`
518    ///
519    /// Specification: _3GPP_
520    pub const THREE_GVO: SampleEntryCode = SampleEntryCode::new(*b"3gvo");
521    /// Dynamic viewport data
522    ///
523    /// FourCC: `6vpt`
524    ///
525    /// Specification: _V3C-SYS_
526    pub const SIX_VPT: SampleEntryCode = SampleEntryCode::new(*b"6vpt");
527    /// 3D-AVC track with 3D-AVC NAL units only
528    ///
529    /// FourCC: `a3d1`
530    ///
531    /// Specification: _NALu Video_
532    pub const A3D1: SampleEntryCode = SampleEntryCode::new(*b"a3d1");
533    /// 3D-AVC track with 3D-AVC NAL units only
534    ///
535    /// FourCC: `a3d2`
536    ///
537    /// Specification: _NALu Video_
538    pub const A3D2: SampleEntryCode = SampleEntryCode::new(*b"a3d2");
539    /// 3D-AVC track with 3D-AVC NAL units only
540    ///
541    /// FourCC: `a3d3`
542    ///
543    /// Specification: _NALu Video_
544    pub const A3D3: SampleEntryCode = SampleEntryCode::new(*b"a3d3");
545    /// 3D-AVC track with 3D-AVC NAL units only
546    ///
547    /// FourCC: `a3d4`
548    ///
549    /// Specification: _NALu Video_
550    pub const A3D4: SampleEntryCode = SampleEntryCode::new(*b"a3d4");
551    /// Auro-Cx 3D audio
552    ///
553    /// FourCC: `a3ds`
554    ///
555    /// Specification: _Auro_
556    pub const A3DS: SampleEntryCode = SampleEntryCode::new(*b"a3ds");
557    /// AC-3 audio
558    ///
559    /// FourCC: `ac-3`
560    ///
561    /// Specification: _ETSI AC-3_
562    pub const AC_3: SampleEntryCode = SampleEntryCode::new(*b"ac-3");
563    /// AC-4 audio
564    ///
565    /// FourCC: `ac-4`
566    ///
567    /// Specification: _ETSI AC-4_
568    pub const AC_4: SampleEntryCode = SampleEntryCode::new(*b"ac-4");
569    /// Apple lossless audio codec
570    ///
571    /// FourCC: `alac`
572    ///
573    /// Specification: _Apple_
574    pub const ALAC: SampleEntryCode = SampleEntryCode::new(*b"alac");
575    /// a-Law
576    ///
577    /// FourCC: `alaw`
578    ///
579    /// Specification: _QT_
580    pub const ALAW: SampleEntryCode = SampleEntryCode::new(*b"alaw");
581    /// AOM Video Codec
582    ///
583    /// FourCC: `av01`
584    ///
585    /// Specification: _AV1-ISOBMFF_
586    pub const AV01: SampleEntryCode = SampleEntryCode::new(*b"av01");
587    /// Advanced Video Coding
588    ///
589    /// FourCC: `avc1`
590    ///
591    /// Specification: _NALu Video_
592    pub const AVC1: SampleEntryCode = SampleEntryCode::new(*b"avc1");
593    /// Advanced Video Coding
594    ///
595    /// FourCC: `avc2`
596    ///
597    /// Specification: _NALu Video_
598    pub const AVC2: SampleEntryCode = SampleEntryCode::new(*b"avc2");
599    /// Advanced Video Coding
600    ///
601    /// FourCC: `avc3`
602    ///
603    /// Specification: _NALu Video_
604    pub const AVC3: SampleEntryCode = SampleEntryCode::new(*b"avc3");
605    /// Advanced Video Coding
606    ///
607    /// FourCC: `avc4`
608    ///
609    /// Specification: _NALu Video_
610    pub const AVC4: SampleEntryCode = SampleEntryCode::new(*b"avc4");
611    /// Advanced Video Coding Parameters
612    ///
613    /// FourCC: `avcp`
614    ///
615    /// Specification: _NALu Video_
616    pub const AVCP: SampleEntryCode = SampleEntryCode::new(*b"avcp");
617    /// 2nd Generation Audio Video Coding Standard of China (AVS Two)
618    ///
619    /// FourCC: `avst`
620    ///
621    /// Specification: _Avs2_
622    pub const AVST: SampleEntryCode = SampleEntryCode::new(*b"avst");
623    /// 3nd Generation Audio Video Coding Standard of China
624    ///
625    /// FourCC: `avs3`
626    ///
627    /// Specification: _Avs3_
628    pub const AVS3: SampleEntryCode = SampleEntryCode::new(*b"avs3");
629    /// Camera motion metadata track
630    ///
631    /// FourCC: `camm`
632    ///
633    /// Specification: _CamMotion_
634    pub const CAMM: SampleEntryCode = SampleEntryCode::new(*b"camm");
635    /// AVS2-P3 Codec
636    ///
637    /// FourCC: `cavs`
638    ///
639    /// Specification: _GB-T-20090-9_
640    pub const CAVS: SampleEntryCode = SampleEntryCode::new(*b"cavs");
641    /// AVS3-P3 Codec
642    ///
643    /// FourCC: `av3a`
644    ///
645    /// Specification: _T-AI-109.7_
646    pub const AV3A: SampleEntryCode = SampleEntryCode::new(*b"av3a");
647    /// AV1-related Dolby Vision consistent with av01
648    ///
649    /// FourCC: `dav1`
650    ///
651    /// Specification: _Dolby Vision_
652    pub const DAV1: SampleEntryCode = SampleEntryCode::new(*b"dav1");
653    /// Decoder power indication
654    ///
655    /// FourCC: `depi`
656    ///
657    /// Specification: _Metrics_
658    pub const DEPI: SampleEntryCode = SampleEntryCode::new(*b"depi");
659    /// Display fine control
660    ///
661    /// FourCC: `dfce`
662    ///
663    /// Specification: _Metrics_
664    pub const DFCE: SampleEntryCode = SampleEntryCode::new(*b"dfce");
665    /// Display power indication
666    ///
667    /// FourCC: `dipi`
668    ///
669    /// Specification: _Metrics_
670    pub const DIPI: SampleEntryCode = SampleEntryCode::new(*b"dipi");
671    /// DRA Audio
672    ///
673    /// FourCC: `dra1`
674    ///
675    /// Specification: _DRA_
676    pub const DRA1: SampleEntryCode = SampleEntryCode::new(*b"dra1");
677    /// Dirac Video Coder
678    ///
679    /// FourCC: `drac`
680    ///
681    /// Specification: _Dirac_
682    pub const DRAC: SampleEntryCode = SampleEntryCode::new(*b"drac");
683    /// Enhancement layer for DTS layered audio
684    ///
685    /// FourCC: `dts+`
686    ///
687    /// Specification: _DTS_
688    pub const DTS_PLUS: SampleEntryCode = SampleEntryCode::new(*b"dts+");
689    /// Dependent base layer for DTS layered audio
690    ///
691    /// FourCC: `dts-`
692    ///
693    /// Specification: _DTS_
694    pub const DTS_: SampleEntryCode = SampleEntryCode::new(*b"dts-");
695    /// Core Substream
696    ///
697    /// FourCC: `dtsc`
698    ///
699    /// Specification: _DTS-HD_
700    pub const DTSC: SampleEntryCode = SampleEntryCode::new(*b"dtsc");
701    /// Extension Substream containing only LBR
702    ///
703    /// FourCC: `dtse`
704    ///
705    /// Specification: _DTS-HD_
706    pub const DTSE: SampleEntryCode = SampleEntryCode::new(*b"dtse");
707    /// Core Substream + Extension Substream
708    ///
709    /// FourCC: `dtsh`
710    ///
711    /// Specification: _DTS-HD_
712    pub const DTSH: SampleEntryCode = SampleEntryCode::new(*b"dtsh");
713    /// Extension Substream containing only XLL
714    ///
715    /// FourCC: `dtsl`
716    ///
717    /// Specification: _DTS-HD_
718    pub const DTSL: SampleEntryCode = SampleEntryCode::new(*b"dtsl");
719    /// DTS-UHD profile 2
720    ///
721    /// FourCC: `dtsx`
722    ///
723    /// Specification: _DTS-UHD_
724    pub const DTSX: SampleEntryCode = SampleEntryCode::new(*b"dtsx");
725    /// DTS-UHD profile 3 or higher
726    ///
727    /// FourCC: `dtsy`
728    ///
729    /// Specification: _DTS-UHD_
730    pub const DTSY: SampleEntryCode = SampleEntryCode::new(*b"dtsy");
731    /// AVC-based Dolby Vision derived from avc1
732    ///
733    /// FourCC: `dva1`
734    ///
735    /// Specification: _Dolby Vision_
736    pub const DVA1: SampleEntryCode = SampleEntryCode::new(*b"dva1");
737    /// AVC-based Dolby Vision derived from avc3
738    ///
739    /// FourCC: `dvav`
740    ///
741    /// Specification: _Dolby Vision_
742    pub const DVAV: SampleEntryCode = SampleEntryCode::new(*b"dvav");
743    /// HEVC-based Dolby Vision derived from hvc1
744    ///
745    /// FourCC: `dvh1`
746    ///
747    /// Specification: _Dolby Vision_
748    pub const DVH1: SampleEntryCode = SampleEntryCode::new(*b"dvh1");
749    /// HEVC-based Dolby Vision derived from hev1
750    ///
751    /// FourCC: `dvhe`
752    ///
753    /// Specification: _Dolby Vision_
754    pub const DVHE: SampleEntryCode = SampleEntryCode::new(*b"dvhe");
755    /// Dynamic overlay parameters
756    ///
757    /// FourCC: `dyol`
758    ///
759    /// Specification: _OMAF_
760    pub const DYOL: SampleEntryCode = SampleEntryCode::new(*b"dyol");
761    /// Dynamic spatial region data
762    ///
763    /// FourCC: `dyvm`
764    ///
765    /// Specification: _V3C-SYS_
766    pub const DYVM: SampleEntryCode = SampleEntryCode::new(*b"dyvm");
767    /// Dynamic viewpoint parameters
768    ///
769    /// FourCC: `dyvp`
770    ///
771    /// Specification: _OMAF_
772    pub const DYVP: SampleEntryCode = SampleEntryCode::new(*b"dyvp");
773    /// Enhanced AC-3 audio
774    ///
775    /// FourCC: `ec-3`
776    ///
777    /// Specification: _ETSI AC-3_
778    pub const EC_3: SampleEntryCode = SampleEntryCode::new(*b"ec-3");
779    /// withdrawn, unused, do not use (was enhanced AC-3 audio with JOC)
780    ///
781    /// FourCC: `ec+3`
782    ///
783    /// Specification: _Deprecated_
784    pub const EC_PLUS_3: SampleEntryCode = SampleEntryCode::new(*b"ec+3");
785    /// Encrypted/Protected audio
786    ///
787    /// FourCC: `enca`
788    ///
789    /// Specification: _ISO_
790    pub const ENCA: SampleEntryCode = SampleEntryCode::new(*b"enca");
791    /// Encrypted/Protected font
792    ///
793    /// FourCC: `encf`
794    ///
795    /// Specification: _ISO_
796    pub const ENCF: SampleEntryCode = SampleEntryCode::new(*b"encf");
797    /// Encrypted/Protected metadata
798    ///
799    /// FourCC: `encm`
800    ///
801    /// Specification: _ISO_
802    pub const ENCM: SampleEntryCode = SampleEntryCode::new(*b"encm");
803    /// Encrypted Systems stream
804    ///
805    /// FourCC: `encs`
806    ///
807    /// Specification: _ISO_
808    pub const ENCS: SampleEntryCode = SampleEntryCode::new(*b"encs");
809    /// Encrypted Text
810    ///
811    /// FourCC: `enct`
812    ///
813    /// Specification: _ISO_
814    pub const ENCT: SampleEntryCode = SampleEntryCode::new(*b"enct");
815    /// Encrypted/protected video
816    ///
817    /// FourCC: `encv`
818    ///
819    /// Specification: _ISO_
820    pub const ENCV: SampleEntryCode = SampleEntryCode::new(*b"encv");
821    /// Essential Video Coding
822    ///
823    /// FourCC: `evc1`
824    ///
825    /// Specification: _NALu Video_
826    pub const EVC1: SampleEntryCode = SampleEntryCode::new(*b"evc1");
827    /// Essential Video Coding slice base track
828    ///
829    /// FourCC: `evm1`
830    ///
831    /// Specification: _NALu Video_
832    pub const EVM1: SampleEntryCode = SampleEntryCode::new(*b"evm1");
833    /// Essential Video Coding slice component track without parameter sets
834    ///
835    /// FourCC: `evs1`
836    ///
837    /// Specification: _NALu Video_
838    pub const EVS1: SampleEntryCode = SampleEntryCode::new(*b"evs1");
839    /// Essential Video Coding slice component track that may contain parameter sets
840    ///
841    /// FourCC: `evs2`
842    ///
843    /// Specification: _NALu Video_
844    pub const EVS2: SampleEntryCode = SampleEntryCode::new(*b"evs2");
845    /// Event message instance
846    ///
847    /// FourCC: `evte`
848    ///
849    /// Specification: _Event Message_
850    pub const EVTE: SampleEntryCode = SampleEntryCode::new(*b"evte");
851    /// File delivery hints
852    ///
853    /// FourCC: `fdp `
854    ///
855    /// Specification: _ISO_
856    pub const FDP: SampleEntryCode = SampleEntryCode::new(*b"fdp ");
857    /// An open lossless intra-frame video codec
858    ///
859    /// FourCC: `FFV1`
860    ///
861    /// Specification: _FF Video Codec_
862    pub const FFV1: SampleEntryCode = SampleEntryCode::new(*b"FFV1");
863    /// Free Lossless Audio Codec (FLAC)
864    ///
865    /// FourCC: `fLaC`
866    ///
867    /// Specification: _FLAC_
868    pub const FLAC: SampleEntryCode = SampleEntryCode::new(*b"fLaC");
869    /// ITU-T Recommendation G.719 (2008)
870    ///
871    /// FourCC: `g719`
872    ///
873    /// Specification: _ITU G.719_
874    pub const G719: SampleEntryCode = SampleEntryCode::new(*b"g719");
875    /// ITU-T Recommendation G.726 (1990)
876    ///
877    /// FourCC: `g726`
878    ///
879    /// Specification: _SDV_
880    pub const G726: SampleEntryCode = SampleEntryCode::new(*b"g726");
881    /// HEVC video with parameter sets in the Sample Entry or samples
882    ///
883    /// FourCC: `hev1`
884    ///
885    /// Specification: _NALu Video_
886    pub const HEV1: SampleEntryCode = SampleEntryCode::new(*b"hev1");
887    /// HEVC video with constrained extractors and/or aggregators and parameter sets in the Sample Entry or samples
888    ///
889    /// FourCC: `hev2`
890    ///
891    /// Specification: _NALu Video_
892    pub const HEV2: SampleEntryCode = SampleEntryCode::new(*b"hev2");
893    /// HEVC video with extractors and/or aggregators and parameter sets in the Sample Entry or samples
894    ///
895    /// FourCC: `hev3`
896    ///
897    /// Specification: _NALu Video_
898    pub const HEV3: SampleEntryCode = SampleEntryCode::new(*b"hev3");
899    /// HEVC video with parameter sets only in the Sample Entry
900    ///
901    /// FourCC: `hvc1`
902    ///
903    /// Specification: _NALu Video_
904    pub const HVC1: SampleEntryCode = SampleEntryCode::new(*b"hvc1");
905    /// HEVC video with constrained extractors and/or aggregators and parameter sets only in the Sample Entry
906    ///
907    /// FourCC: `hvc2`
908    ///
909    /// Specification: _NALu Video_
910    pub const HVC2: SampleEntryCode = SampleEntryCode::new(*b"hvc2");
911    /// HEVC video with extractors and/or aggregators and parameter sets only in the Sample Entry
912    ///
913    /// FourCC: `hvc3`
914    ///
915    /// Specification: _NALu Video_
916    pub const HVC3: SampleEntryCode = SampleEntryCode::new(*b"hvc3");
917    /// HEVC tile tracks
918    ///
919    /// FourCC: `hvt1`
920    ///
921    /// Specification: _NALu Video_
922    pub const HVT1: SampleEntryCode = SampleEntryCode::new(*b"hvt1");
923    /// HEVC slice segment data track
924    ///
925    /// FourCC: `hvt2`
926    ///
927    /// Specification: _NALu Video_
928    pub const HVT2: SampleEntryCode = SampleEntryCode::new(*b"hvt2");
929    /// HEVC Tile Track with Slice Segment Header Info
930    ///
931    /// FourCC: `hvt3`
932    ///
933    /// Specification: _NALu Video_
934    pub const HVT3: SampleEntryCode = SampleEntryCode::new(*b"hvt3");
935    /// Incomplete video
936    ///
937    /// FourCC: `icpv`
938    ///
939    /// Specification: _ISO_
940    pub const ICPV: SampleEntryCode = SampleEntryCode::new(*b"icpv");
941    /// Incomplete volumetric visual
942    ///
943    /// FourCC: `icp3`
944    ///
945    /// Specification: _ISO_
946    pub const ICP3: SampleEntryCode = SampleEntryCode::new(*b"icp3");
947    /// Incomplete audio
948    ///
949    /// FourCC: `icpa`
950    ///
951    /// Specification: _ISO_
952    pub const ICPA: SampleEntryCode = SampleEntryCode::new(*b"icpa");
953    /// Incomplete hint
954    ///
955    /// FourCC: `icph`
956    ///
957    /// Specification: _ISO_
958    pub const ICPH: SampleEntryCode = SampleEntryCode::new(*b"icph");
959    /// Incomplete timed metadata
960    ///
961    /// FourCC: `icpm`
962    ///
963    /// Specification: _ISO_
964    pub const ICPM: SampleEntryCode = SampleEntryCode::new(*b"icpm");
965    /// Incomplete haptics
966    ///
967    /// FourCC: `icpp`
968    ///
969    /// Specification: _ISO_
970    pub const ICPP: SampleEntryCode = SampleEntryCode::new(*b"icpp");
971    /// Incomplete system
972    ///
973    /// FourCC: `icps`
974    ///
975    /// Specification: _ISO_
976    pub const ICPS: SampleEntryCode = SampleEntryCode::new(*b"icps");
977    /// Incomplete text
978    ///
979    /// FourCC: `icpt`
980    ///
981    /// Specification: _ISO_
982    pub const ICPT: SampleEntryCode = SampleEntryCode::new(*b"icpt");
983    /// Initial viewing orientation
984    ///
985    /// FourCC: `invo`
986    ///
987    /// Specification: _OMAF_
988    pub const INVO: SampleEntryCode = SampleEntryCode::new(*b"invo");
989    /// Initial viewpoint
990    ///
991    /// FourCC: `invp`
992    ///
993    /// Specification: _OMAF_
994    pub const INVP: SampleEntryCode = SampleEntryCode::new(*b"invp");
995    /// DVB Track Level Index Track
996    ///
997    /// FourCC: `ixse`
998    ///
999    /// Specification: _DVB_
1000    pub const IXSE: SampleEntryCode = SampleEntryCode::new(*b"ixse");
1001    /// Sequence of JPEG 2000 Contiguous Codestream boxes as defined in Rec. ITU-T T.800 | ISO/IEC 15444-1
1002    ///
1003    /// FourCC: `j2ki`
1004    ///
1005    /// Specification: _J2KHEIF_
1006    pub const J2KI: SampleEntryCode = SampleEntryCode::new(*b"j2ki");
1007    /// Video and image sequences coded to the JPEG-XS coding format
1008    ///
1009    /// FourCC: `jxsm`
1010    ///
1011    /// Specification: _JPXS_
1012    pub const JXSM: SampleEntryCode = SampleEntryCode::new(*b"jxsm");
1013    /// Layered HEVC
1014    ///
1015    /// FourCC: `lhe1`
1016    ///
1017    /// Specification: _NALu Video_
1018    pub const LHE1: SampleEntryCode = SampleEntryCode::new(*b"lhe1");
1019    /// Layered HEVC tile tracks
1020    ///
1021    /// FourCC: `lht1`
1022    ///
1023    /// Specification: _NALu Video_
1024    pub const LHT1: SampleEntryCode = SampleEntryCode::new(*b"lht1");
1025    /// Layered HEVC
1026    ///
1027    /// FourCC: `lhv1`
1028    ///
1029    /// Specification: _NALu Video_
1030    pub const LHV1: SampleEntryCode = SampleEntryCode::new(*b"lhv1");
1031    /// MPEG-2 transport stream for DMB
1032    ///
1033    /// FourCC: `m2ts`
1034    ///
1035    /// Specification: _DMB-MAF_
1036    pub const M2TS: SampleEntryCode = SampleEntryCode::new(*b"m2ts");
1037    /// MPEG-4 Audio Enhancement
1038    ///
1039    /// FourCC: `m4ae`
1040    ///
1041    /// Specification: _MP4v2_
1042    pub const M4AE: SampleEntryCode = SampleEntryCode::new(*b"m4ae");
1043    /// Timed metadata multiplex
1044    ///
1045    /// FourCC: `mebx`
1046    ///
1047    /// Specification: _ISO_
1048    pub const MEBX: SampleEntryCode = SampleEntryCode::new(*b"mebx");
1049    /// Text timed metadata that is not XML
1050    ///
1051    /// FourCC: `mett`
1052    ///
1053    /// Specification: _ISO_
1054    pub const METT: SampleEntryCode = SampleEntryCode::new(*b"mett");
1055    /// XML timed metadata
1056    ///
1057    /// FourCC: `metx`
1058    ///
1059    /// Specification: _ISO_
1060    pub const METX: SampleEntryCode = SampleEntryCode::new(*b"metx");
1061    /// MPEG-H Audio (single stream, unencapsulated)
1062    ///
1063    /// FourCC: `mha1`
1064    ///
1065    /// Specification: _MPEG-H_
1066    pub const MHA1: SampleEntryCode = SampleEntryCode::new(*b"mha1");
1067    /// MPEG-H Audio (multi-stream, unencapsulated)
1068    ///
1069    /// FourCC: `mha2`
1070    ///
1071    /// Specification: _MPEG-H_
1072    pub const MHA2: SampleEntryCode = SampleEntryCode::new(*b"mha2");
1073    /// MPEG-H Audio (single stream, MHAS encapsulated)
1074    ///
1075    /// FourCC: `mhm1`
1076    ///
1077    /// Specification: _MPEG-H_
1078    pub const MHM1: SampleEntryCode = SampleEntryCode::new(*b"mhm1");
1079    /// MPEG-H Audio (multi-stream, MHAS encapsulated)
1080    ///
1081    /// FourCC: `mhm2`
1082    ///
1083    /// Specification: _MPEG-H_
1084    pub const MHM2: SampleEntryCode = SampleEntryCode::new(*b"mhm2");
1085    /// Motion JPEG 2000
1086    ///
1087    /// FourCC: `mjp2`
1088    ///
1089    /// Specification: _MJ2_
1090    pub const MJP2: SampleEntryCode = SampleEntryCode::new(*b"mjp2");
1091    /// JPEG image sequences
1092    ///
1093    /// FourCC: `mjpg`
1094    ///
1095    /// Specification: _HEIF_
1096    pub const MJPG: SampleEntryCode = SampleEntryCode::new(*b"mjpg");
1097    /// DVB Movie level index track
1098    ///
1099    /// FourCC: `mlix`
1100    ///
1101    /// Specification: _DVB_
1102    pub const MLIX: SampleEntryCode = SampleEntryCode::new(*b"mlix");
1103    /// MLP Audio
1104    ///
1105    /// FourCC: `mlpa`
1106    ///
1107    /// Specification: _Dolby MLP_
1108    pub const MLPA: SampleEntryCode = SampleEntryCode::new(*b"mlpa");
1109    /// MPEG-4 Audio
1110    ///
1111    /// FourCC: `mp4a`
1112    ///
1113    /// Specification: _MP4v2_
1114    pub const MP4A: SampleEntryCode = SampleEntryCode::new(*b"mp4a");
1115    /// MPEG-4 Systems
1116    ///
1117    /// FourCC: `mp4s`
1118    ///
1119    /// Specification: _MP4v2_
1120    pub const MP4S: SampleEntryCode = SampleEntryCode::new(*b"mp4s");
1121    /// MPEG-4 Visual
1122    ///
1123    /// FourCC: `mp4v`
1124    ///
1125    /// Specification: _MP4v2_
1126    pub const MP4V: SampleEntryCode = SampleEntryCode::new(*b"mp4v");
1127    /// Multiview coding
1128    ///
1129    /// FourCC: `mvc1`
1130    ///
1131    /// Specification: _NALu Video_
1132    pub const MVC1: SampleEntryCode = SampleEntryCode::new(*b"mvc1");
1133    /// Multiview coding
1134    ///
1135    /// FourCC: `mvc2`
1136    ///
1137    /// Specification: _NALu Video_
1138    pub const MVC2: SampleEntryCode = SampleEntryCode::new(*b"mvc2");
1139    /// Multiview coding
1140    ///
1141    /// FourCC: `mvc3`
1142    ///
1143    /// Specification: _NALu Video_
1144    pub const MVC3: SampleEntryCode = SampleEntryCode::new(*b"mvc3");
1145    /// Multiview coding
1146    ///
1147    /// FourCC: `mvc4`
1148    ///
1149    /// Specification: _NALu Video_
1150    pub const MVC4: SampleEntryCode = SampleEntryCode::new(*b"mvc4");
1151    /// MVD stream
1152    ///
1153    /// FourCC: `mvd1`
1154    ///
1155    /// Specification: _NALu Video_
1156    pub const MVD1: SampleEntryCode = SampleEntryCode::new(*b"mvd1");
1157    /// MVD stream
1158    ///
1159    /// FourCC: `mvd2`
1160    ///
1161    /// Specification: _NALu Video_
1162    pub const MVD2: SampleEntryCode = SampleEntryCode::new(*b"mvd2");
1163    /// MVD stream
1164    ///
1165    /// FourCC: `mvd3`
1166    ///
1167    /// Specification: _NALu Video_
1168    pub const MVD3: SampleEntryCode = SampleEntryCode::new(*b"mvd3");
1169    /// MVD stream
1170    ///
1171    /// FourCC: `mvd4`
1172    ///
1173    /// Specification: _NALu Video_
1174    pub const MVD4: SampleEntryCode = SampleEntryCode::new(*b"mvd4");
1175    /// Object centre points correspondence between viewpoints
1176    ///
1177    /// FourCC: `ocpc`
1178    ///
1179    /// Specification: _OMAF_
1180    pub const OCPC: SampleEntryCode = SampleEntryCode::new(*b"ocpc");
1181    /// OMA Keys
1182    ///
1183    /// FourCC: `oksd`
1184    ///
1185    /// Specification: _OMA DRM XBS_
1186    pub const OKSD: SampleEntryCode = SampleEntryCode::new(*b"oksd");
1187    /// Opus audio coding
1188    ///
1189    /// FourCC: `Opus`
1190    ///
1191    /// Specification: _Opus_
1192    pub const OPUS: SampleEntryCode = SampleEntryCode::new(*b"Opus");
1193    /// Protected MPEG-2 Transport
1194    ///
1195    /// FourCC: `pm2t`
1196    ///
1197    /// Specification: _ISO_
1198    pub const PM2T: SampleEntryCode = SampleEntryCode::new(*b"pm2t");
1199    /// Protected RTP Reception
1200    ///
1201    /// FourCC: `prtp`
1202    ///
1203    /// Specification: _ISO_
1204    pub const PRTP: SampleEntryCode = SampleEntryCode::new(*b"prtp");
1205    /// Uncompressed audio
1206    ///
1207    /// FourCC: `raw `
1208    ///
1209    /// Specification: _MJ2_
1210    pub const RAW: SampleEntryCode = SampleEntryCode::new(*b"raw ");
1211    /// Recommended viewport without indicating a viewpoint
1212    ///
1213    /// FourCC: `rcvp`
1214    ///
1215    /// Specification: _OMAF_
1216    pub const RCVP: SampleEntryCode = SampleEntryCode::new(*b"rcvp");
1217    /// Restricted Video
1218    ///
1219    /// FourCC: `resv`
1220    ///
1221    /// Specification: _ISO_
1222    pub const RESV: SampleEntryCode = SampleEntryCode::new(*b"resv");
1223    /// Restricted Audio
1224    ///
1225    /// FourCC: `resa`
1226    ///
1227    /// Specification: _ISO_
1228    pub const RESA: SampleEntryCode = SampleEntryCode::new(*b"resa");
1229    /// MPEG-2 Transport Reception
1230    ///
1231    /// FourCC: `rm2t`
1232    ///
1233    /// Specification: _ISO_
1234    pub const RM2T: SampleEntryCode = SampleEntryCode::new(*b"rm2t");
1235    /// RTP reception
1236    ///
1237    /// FourCC: `rrtp`
1238    ///
1239    /// Specification: _ISO_
1240    pub const RRTP: SampleEntryCode = SampleEntryCode::new(*b"rrtp");
1241    /// SRTP Reception
1242    ///
1243    /// FourCC: `rsrp`
1244    ///
1245    /// Specification: _ISO_
1246    pub const RSRP: SampleEntryCode = SampleEntryCode::new(*b"rsrp");
1247    /// RTCP reception hint track
1248    ///
1249    /// FourCC: `rtcp`
1250    ///
1251    /// Specification: _ISO_
1252    pub const RTCP: SampleEntryCode = SampleEntryCode::new(*b"rtcp");
1253    /// Real Time Metadata Sample Entry(XAVC Format)
1254    ///
1255    /// FourCC: `rtmd`
1256    ///
1257    /// Specification: _Sony_
1258    pub const RTMD: SampleEntryCode = SampleEntryCode::new(*b"rtmd");
1259    /// RTP Hints
1260    ///
1261    /// FourCC: `rtp `
1262    ///
1263    /// Specification: _ISO_
1264    pub const RTP: SampleEntryCode = SampleEntryCode::new(*b"rtp ");
1265    /// RealVideo Codec 11
1266    ///
1267    /// FourCC: `rv60`
1268    ///
1269    /// Specification: _RealHD_
1270    pub const RV60: SampleEntryCode = SampleEntryCode::new(*b"rv60");
1271    /// Recommended viewport concerning one or more indicated viewpoints
1272    ///
1273    /// FourCC: `rvp2`
1274    ///
1275    /// Specification: _OMAF_
1276    pub const RVP2: SampleEntryCode = SampleEntryCode::new(*b"rvp2");
1277    /// ITU H.263 video (3GPP format)
1278    ///
1279    /// FourCC: `s263`
1280    ///
1281    /// Specification: _3GPP_
1282    pub const S263: SampleEntryCode = SampleEntryCode::new(*b"s263");
1283    /// Narrowband AMR voice
1284    ///
1285    /// FourCC: `samr`
1286    ///
1287    /// Specification: _3GPP_
1288    pub const SAMR: SampleEntryCode = SampleEntryCode::new(*b"samr");
1289    /// Wideband AMR voice
1290    ///
1291    /// FourCC: `sawb`
1292    ///
1293    /// Specification: _3GPP_
1294    pub const SAWB: SampleEntryCode = SampleEntryCode::new(*b"sawb");
1295    /// Extended AMR-WB (AMR-WB+)
1296    ///
1297    /// FourCC: `sawp`
1298    ///
1299    /// Specification: _3GPP_
1300    pub const SAWP: SampleEntryCode = SampleEntryCode::new(*b"sawp");
1301    /// Text subtitles
1302    ///
1303    /// FourCC: `sbtt`
1304    ///
1305    /// Specification: _ISO_
1306    pub const SBTT: SampleEntryCode = SampleEntryCode::new(*b"sbtt");
1307    /// EVRC Voice
1308    ///
1309    /// FourCC: `sevc`
1310    ///
1311    /// Specification: _3GPP2_
1312    pub const SEVC: SampleEntryCode = SampleEntryCode::new(*b"sevc");
1313    /// Enhanced Voice Services (EVS)
1314    ///
1315    /// FourCC: `sevs`
1316    ///
1317    /// Specification: _3GPP_
1318    pub const SEVS: SampleEntryCode = SampleEntryCode::new(*b"sevs");
1319    /// MPEG-2 Transport Server
1320    ///
1321    /// FourCC: `sm2t`
1322    ///
1323    /// Specification: _ISO_
1324    pub const SM2T: SampleEntryCode = SampleEntryCode::new(*b"sm2t");
1325    /// 13K Voice
1326    ///
1327    /// FourCC: `sqcp`
1328    ///
1329    /// Specification: _3GPP2_
1330    pub const SQCP: SampleEntryCode = SampleEntryCode::new(*b"sqcp");
1331    /// SRTP Hints
1332    ///
1333    /// FourCC: `srtp`
1334    ///
1335    /// Specification: _ISO_
1336    pub const SRTP: SampleEntryCode = SampleEntryCode::new(*b"srtp");
1337    /// SMV Voice
1338    ///
1339    /// FourCC: `ssmv`
1340    ///
1341    /// Specification: _3GPP2_
1342    pub const SSMV: SampleEntryCode = SampleEntryCode::new(*b"ssmv");
1343    /// SRTCP reception hint track
1344    ///
1345    /// FourCC: `stcp`
1346    ///
1347    /// Specification: _ISO_
1348    pub const STCP: SampleEntryCode = SampleEntryCode::new(*b"stcp");
1349    /// Subtitle Sample Entry (HMMP)
1350    ///
1351    /// FourCC: `STGS`
1352    ///
1353    /// Specification: _Sony_
1354    pub const STGS: SampleEntryCode = SampleEntryCode::new(*b"STGS");
1355    /// Metadata for ERP (equirectangular projection) regions
1356    ///
1357    /// FourCC: `stmd`
1358    ///
1359    /// Specification: _OMAF_
1360    pub const STMD: SampleEntryCode = SampleEntryCode::new(*b"stmd");
1361    /// Subtitles (Timed Text)
1362    ///
1363    /// FourCC: `stpp`
1364    ///
1365    /// Specification: _ISO_
1366    pub const STPP: SampleEntryCode = SampleEntryCode::new(*b"stpp");
1367    /// Simple timed text
1368    ///
1369    /// FourCC: `stxt`
1370    ///
1371    /// Specification: _ISO_
1372    pub const STXT: SampleEntryCode = SampleEntryCode::new(*b"stxt");
1373    /// Scalable Video Coding
1374    ///
1375    /// FourCC: `svc1`
1376    ///
1377    /// Specification: _NALu Video_
1378    pub const SVC1: SampleEntryCode = SampleEntryCode::new(*b"svc1");
1379    /// Scalable Video Coding
1380    ///
1381    /// FourCC: `svc2`
1382    ///
1383    /// Specification: _NALu Video_
1384    pub const SVC2: SampleEntryCode = SampleEntryCode::new(*b"svc2");
1385    /// SVC metadata
1386    ///
1387    /// FourCC: `svcM`
1388    ///
1389    /// Specification: _NALu Video_
1390    pub const SVCM: SampleEntryCode = SampleEntryCode::new(*b"svcM");
1391    /// 64 bit timecode samples
1392    ///
1393    /// FourCC: `tc64`
1394    ///
1395    /// Specification: _Apple_
1396    pub const TC64: SampleEntryCode = SampleEntryCode::new(*b"tc64");
1397    /// 32 bit timecode samples
1398    ///
1399    /// FourCC: `tmcd`
1400    ///
1401    /// Specification: _Apple_
1402    pub const TMCD: SampleEntryCode = SampleEntryCode::new(*b"tmcd");
1403    /// Sphere location for timed text
1404    ///
1405    /// FourCC: `ttsl`
1406    ///
1407    /// Specification: _OMAF_
1408    pub const TTSL: SampleEntryCode = SampleEntryCode::new(*b"ttsl");
1409    /// Uncompressed 16-bit audio
1410    ///
1411    /// FourCC: `twos`
1412    ///
1413    /// Specification: _MJ2_
1414    pub const TWOS: SampleEntryCode = SampleEntryCode::new(*b"twos");
1415    /// Timed Text stream
1416    ///
1417    /// FourCC: `tx3g`
1418    ///
1419    /// Specification: _3GPP_
1420    pub const TX3G: SampleEntryCode = SampleEntryCode::new(*b"tx3g");
1421    /// Samples have been compressed using uLaw 2:1.
1422    ///
1423    /// FourCC: `ulaw`
1424    ///
1425    /// Specification: _QT_
1426    pub const ULAW: SampleEntryCode = SampleEntryCode::new(*b"ulaw");
1427    /// Dynamic Range Control (DRC) data
1428    ///
1429    /// FourCC: `unid`
1430    ///
1431    /// Specification: _DRC_
1432    pub const UNID: SampleEntryCode = SampleEntryCode::new(*b"unid");
1433    /// Binary timed metadata identified by URI
1434    ///
1435    /// FourCC: `urim`
1436    ///
1437    /// Specification: _ISO_
1438    pub const URIM: SampleEntryCode = SampleEntryCode::new(*b"urim");
1439    /// V3C atlas track with atlas parameter sets only in sample entries
1440    ///
1441    /// FourCC: `v3a1`
1442    ///
1443    /// Specification: _V3C-SYS_
1444    pub const V3A1: SampleEntryCode = SampleEntryCode::new(*b"v3a1");
1445    /// V3C atlas track with atlas parameter sets in sample entries or samples
1446    ///
1447    /// FourCC: `v3ag`
1448    ///
1449    /// Specification: _V3C-SYS_
1450    pub const V3AG: SampleEntryCode = SampleEntryCode::new(*b"v3ag");
1451    /// V3C atlas track with a single atlas and atlas parameter sets only in sample entries
1452    ///
1453    /// FourCC: `v3c1`
1454    ///
1455    /// Specification: _V3C-SYS_
1456    pub const V3C1: SampleEntryCode = SampleEntryCode::new(*b"v3c1");
1457    /// V3C atlas base track with common atlas data
1458    ///
1459    /// FourCC: `v3cb`
1460    ///
1461    /// Specification: _V3C-SYS_
1462    pub const V3CB: SampleEntryCode = SampleEntryCode::new(*b"v3cb");
1463    /// V3C atlas track with a single atlas and atlas parameter sets in sample entries or samples
1464    ///
1465    /// FourCC: `v3cg`
1466    ///
1467    /// Specification: _V3C-SYS_
1468    pub const V3CG: SampleEntryCode = SampleEntryCode::new(*b"v3cg");
1469    /// V3C bitstream track with atlas parameter sets only in sample entries
1470    ///
1471    /// FourCC: `v3e1`
1472    ///
1473    /// Specification: _V3C-SYS_
1474    pub const V3E1: SampleEntryCode = SampleEntryCode::new(*b"v3e1");
1475    /// V3C bitstream track with atlas parameter sets in sample entries or samples
1476    ///
1477    /// FourCC: `v3eg`
1478    ///
1479    /// Specification: _V3C-SYS_
1480    pub const V3EG: SampleEntryCode = SampleEntryCode::new(*b"v3eg");
1481    /// V3C atlas tile track with atlas tile data
1482    ///
1483    /// FourCC: `v3t1`
1484    ///
1485    /// Specification: _V3C-SYS_
1486    pub const V3T1: SampleEntryCode = SampleEntryCode::new(*b"v3t1");
1487    /// SMPTE VC-1
1488    ///
1489    /// FourCC: `vc-1`
1490    ///
1491    /// Specification: _SMPTE_
1492    pub const VC_1: SampleEntryCode = SampleEntryCode::new(*b"vc-1");
1493    /// VP8 video
1494    ///
1495    /// FourCC: `vp08`
1496    ///
1497    /// Specification: _VPxx_
1498    pub const VP08: SampleEntryCode = SampleEntryCode::new(*b"vp08");
1499    /// VP9 video
1500    ///
1501    /// FourCC: `vp09`
1502    ///
1503    /// Specification: _VPxx_
1504    pub const VP09: SampleEntryCode = SampleEntryCode::new(*b"vp09");
1505    /// Quality metrics
1506    ///
1507    /// FourCC: `vqme`
1508    ///
1509    /// Specification: _Metrics_
1510    pub const VQME: SampleEntryCode = SampleEntryCode::new(*b"vqme");
1511    /// Viewing space
1512    ///
1513    /// FourCC: `vrsp`
1514    ///
1515    /// Specification: _OMAF_
1516    pub const VRSP: SampleEntryCode = SampleEntryCode::new(*b"vrsp");
1517    /// Versatile Video Coding with non-VCL (Video Coding Layer) NAL (Network Abstraction Layer) units only
1518    ///
1519    /// FourCC: `vvcN`
1520    ///
1521    /// Specification: _NALu Video_
1522    pub const VVCN: SampleEntryCode = SampleEntryCode::new(*b"vvcN");
1523    /// Versatile Video Coding with parameter sets only in sample entries
1524    ///
1525    /// FourCC: `vvc1`
1526    ///
1527    /// Specification: _NALu Video_
1528    pub const VVC1: SampleEntryCode = SampleEntryCode::new(*b"vvc1");
1529    /// Versatile Video Coding with parameter sets in sample entries or samples
1530    ///
1531    /// FourCC: `vvi1`
1532    ///
1533    /// Specification: _NALu Video_
1534    pub const VVI1: SampleEntryCode = SampleEntryCode::new(*b"vvi1");
1535    /// Versatile Video Coding (VVC) subpicture track that does not contain a conforming VVC bitstream
1536    ///
1537    /// FourCC: `vvs1`
1538    ///
1539    /// Specification: _NALu Video_
1540    pub const VVS1: SampleEntryCode = SampleEntryCode::new(*b"vvs1");
1541    /// WebVTT data
1542    ///
1543    /// FourCC: `wvtt`
1544    ///
1545    /// Specification: _ISO-Text_
1546    pub const WVTT: SampleEntryCode = SampleEntryCode::new(*b"wvtt");
1547    /// Encrypted/protected subtitles
1548    ///
1549    /// FourCC: `encu`
1550    ///
1551    /// Specification: _ISO_
1552    pub const ENCU: SampleEntryCode = SampleEntryCode::new(*b"encu");
1553    /// Encrypted/protected haptics
1554    ///
1555    /// FourCC: `encp`
1556    ///
1557    /// Specification: _ISO_
1558    pub const ENCP: SampleEntryCode = SampleEntryCode::new(*b"encp");
1559    /// Encrypted/protected volumetric visual
1560    ///
1561    /// FourCC: `enc3`
1562    ///
1563    /// Specification: _ISO_
1564    pub const ENC3: SampleEntryCode = SampleEntryCode::new(*b"enc3");
1565    /// Uncompressed Video
1566    ///
1567    /// FourCC: `uncv`
1568    ///
1569    /// Specification: _UNCV_
1570    pub const UNCV: SampleEntryCode = SampleEntryCode::new(*b"uncv");
1571    /// Immersive Audio Model and Formats - Encapsulated IA Sequence
1572    ///
1573    /// FourCC: `iamf`
1574    ///
1575    /// Specification: _AOM-IAMF_
1576    pub const IAMF: SampleEntryCode = SampleEntryCode::new(*b"iamf");
1577    /// Integer based PCM format for audio
1578    ///
1579    /// FourCC: `ipcm`
1580    ///
1581    /// Specification: _ISO-UNCA_
1582    pub const IPCM: SampleEntryCode = SampleEntryCode::new(*b"ipcm");
1583    /// Floating-point based PCM format for audio
1584    ///
1585    /// FourCC: `fpcm`
1586    ///
1587    /// Specification: _ISO-UNCA_
1588    pub const FPCM: SampleEntryCode = SampleEntryCode::new(*b"fpcm");
1589    /// Dynamic Metadata Sample Entry(XF-AVC S/XF-HEVC S File Format)
1590    ///
1591    /// FourCC: `cndm`
1592    ///
1593    /// Specification: _Canon_
1594    pub const CNDM: SampleEntryCode = SampleEntryCode::new(*b"cndm");
1595    /// LCEVC video track
1596    ///
1597    /// FourCC: `lvc1`
1598    ///
1599    /// Specification: _NALu Video_
1600    pub const LVC1: SampleEntryCode = SampleEntryCode::new(*b"lvc1");
1601    /// Apple Positional Audio Codec
1602    ///
1603    /// FourCC: `apac`
1604    ///
1605    /// Specification: _Apple_
1606    pub const APAC: SampleEntryCode = SampleEntryCode::new(*b"apac");
1607    /// APV mezzanine video codec for storage exchange and editing of professional quality video
1608    ///
1609    /// FourCC: `apv1`
1610    ///
1611    /// Specification: _OpenAPV_
1612    pub const APV1: SampleEntryCode = SampleEntryCode::new(*b"apv1");
1613}
1614/// Return the handler type for a box code that appears inside a sample entry, if one is defined.
1615pub fn sample_entry_box_handler(code: BoxCode) -> Option<HandlerCode> {
1616    match code {
1617        BoxCode::THREE_SIB => Some(HandlerCode::VIDE),
1618        BoxCode::SIX_VPC => Some(HandlerCode::VOLV),
1619        BoxCode::A3DC => Some(HandlerCode::VIDE),
1620        BoxCode::AUXI => Some(HandlerCode::VIDE),
1621        BoxCode::AV1C => Some(HandlerCode::VIDE),
1622        BoxCode::AVCC => Some(HandlerCode::VIDE),
1623        BoxCode::BTRT => None,
1624        BoxCode::CCLV => Some(HandlerCode::VIDE),
1625        BoxCode::CCST => Some(HandlerCode::VIDE),
1626        BoxCode::CHNL => Some(HandlerCode::SOUN),
1627        BoxCode::CLAP => Some(HandlerCode::VIDE),
1628        BoxCode::CLLI => Some(HandlerCode::VIDE),
1629        BoxCode::COLR => Some(HandlerCode::VIDE),
1630        BoxCode::COLL => Some(HandlerCode::VIDE),
1631        BoxCode::DAC3 => Some(HandlerCode::SOUN),
1632        BoxCode::DAC4 => Some(HandlerCode::SOUN),
1633        BoxCode::DEC3 => Some(HandlerCode::SOUN),
1634        BoxCode::DFLA => Some(HandlerCode::SOUN),
1635        BoxCode::DHEC => Some(HandlerCode::VIDE),
1636        BoxCode::DMIX => Some(HandlerCode::SOUN),
1637        BoxCode::DMLP => Some(HandlerCode::SOUN),
1638        BoxCode::DVCC => Some(HandlerCode::VIDE),
1639        BoxCode::DVVC => Some(HandlerCode::VIDE),
1640        BoxCode::DVWC => Some(HandlerCode::VIDE),
1641        BoxCode::ECAM => Some(HandlerCode::VIDE),
1642        BoxCode::ESDS => None,
1643        BoxCode::EVCC => Some(HandlerCode::VIDE),
1644        BoxCode::EVSC => Some(HandlerCode::VIDE),
1645        BoxCode::FIEL => Some(HandlerCode::VIDE),
1646        BoxCode::HVCC => Some(HandlerCode::VIDE),
1647        BoxCode::HVTC => Some(HandlerCode::VIDE),
1648        BoxCode::ICAM => Some(HandlerCode::VIDE),
1649        BoxCode::JPGC => Some(HandlerCode::PICT),
1650        BoxCode::LEQI => Some(HandlerCode::SOUN),
1651        BoxCode::LHVC => Some(HandlerCode::VIDE),
1652        BoxCode::M4DS => None,
1653        BoxCode::MAEI => Some(HandlerCode::SOUN),
1654        BoxCode::MAEM => Some(HandlerCode::SOUN),
1655        BoxCode::MDCV => Some(HandlerCode::VIDE),
1656        BoxCode::MHAC => Some(HandlerCode::SOUN),
1657        BoxCode::MHAD => Some(HandlerCode::SOUN),
1658        BoxCode::MHAP => Some(HandlerCode::SOUN),
1659        BoxCode::MVCC => Some(HandlerCode::VIDE),
1660        BoxCode::MVCP => Some(HandlerCode::VIDE),
1661        BoxCode::MVDC => Some(HandlerCode::VIDE),
1662        BoxCode::PASP => Some(HandlerCode::VIDE),
1663        BoxCode::PDC1 => Some(HandlerCode::SOUN),
1664        BoxCode::PDI1 => Some(HandlerCode::SOUN),
1665        BoxCode::PRMR => Some(HandlerCode::VIDE),
1666        BoxCode::QLIF => Some(HandlerCode::VIDE),
1667        BoxCode::SCRB => Some(HandlerCode::VIDE),
1668        BoxCode::SEIB => Some(HandlerCode::VIDE),
1669        BoxCode::SILB => Some(HandlerCode::META),
1670        BoxCode::SMDM => Some(HandlerCode::VIDE),
1671        BoxCode::SRAT => Some(HandlerCode::SOUN),
1672        BoxCode::SVCC => Some(HandlerCode::VIDE),
1673        BoxCode::SVCP => Some(HandlerCode::VIDE),
1674        BoxCode::SVMC => Some(HandlerCode::META),
1675        BoxCode::TXTC => Some(HandlerCode::TEXT),
1676        BoxCode::UDC1 => Some(HandlerCode::SOUN),
1677        BoxCode::UDC2 => Some(HandlerCode::SOUN),
1678        BoxCode::UDEX => Some(HandlerCode::SOUN),
1679        BoxCode::UDI1 => Some(HandlerCode::SOUN),
1680        BoxCode::UDI2 => Some(HandlerCode::SOUN),
1681        BoxCode::UEQC => Some(HandlerCode::SOUN),
1682        BoxCode::UEQI => Some(HandlerCode::SOUN),
1683        BoxCode::URII => Some(HandlerCode::META),
1684        BoxCode::V3CC => Some(HandlerCode::VOLV),
1685        BoxCode::V3TC => Some(HandlerCode::VOLV),
1686        BoxCode::VEXU => Some(HandlerCode::VIDE),
1687        BoxCode::VPCC => Some(HandlerCode::VIDE),
1688        BoxCode::VSIB => Some(HandlerCode::VIDE),
1689        BoxCode::VTTC => Some(HandlerCode::TEXT),
1690        BoxCode::VVNC => Some(HandlerCode::VIDE),
1691        BoxCode::VVCC => Some(HandlerCode::VIDE),
1692        BoxCode::VWID => Some(HandlerCode::VIDE),
1693        BoxCode::VLAB => Some(HandlerCode::TEXT),
1694        BoxCode::CUVV => Some(HandlerCode::VIDE),
1695        BoxCode::CMPD => Some(HandlerCode::VIDE),
1696        BoxCode::UNCC => Some(HandlerCode::VIDE),
1697        BoxCode::CPAL => Some(HandlerCode::VIDE),
1698        BoxCode::CPAT => Some(HandlerCode::VIDE),
1699        BoxCode::CLEV => Some(HandlerCode::VIDE),
1700        BoxCode::SPLZ => Some(HandlerCode::VIDE),
1701        BoxCode::SNUC => Some(HandlerCode::VIDE),
1702        BoxCode::SBPM => Some(HandlerCode::VIDE),
1703        BoxCode::CLOC => Some(HandlerCode::VIDE),
1704        BoxCode::FPAC => Some(HandlerCode::VIDE),
1705        BoxCode::DISI => Some(HandlerCode::VIDE),
1706        BoxCode::PCMC => Some(HandlerCode::SOUN),
1707        BoxCode::LVCC => Some(HandlerCode::VIDE),
1708        BoxCode::ACXD => Some(HandlerCode::SOUN),
1709        BoxCode::DCA3 => Some(HandlerCode::SOUN),
1710        BoxCode::APVC => Some(HandlerCode::VIDE),
1711        BoxCode::AMVE => Some(HandlerCode::VIDE),
1712        BoxCode::ALMO => Some(HandlerCode::VIDE),
1713        _ => None,
1714    }
1715}
1716impl BoxCode {
1717    /// Compressed movie fragment
1718    ///
1719    /// FourCC: `!mof`
1720    ///
1721    /// Specification: _ISO_
1722    pub const COMPRESSED_MOF: BoxCode = BoxCode::new(*b"!mof");
1723    /// Compressed movie
1724    ///
1725    /// FourCC: `!mov`
1726    ///
1727    /// Specification: _ISO_
1728    pub const COMPRESSED_MOV: BoxCode = BoxCode::new(*b"!mov");
1729    /// Compressed segment index
1730    ///
1731    /// FourCC: `!six`
1732    ///
1733    /// Specification: _ISO_
1734    pub const COMPRESSED_SIX: BoxCode = BoxCode::new(*b"!six");
1735    /// Compressed subsegment index
1736    ///
1737    /// FourCC: `!ssx`
1738    ///
1739    /// Specification: _ISO_
1740    pub const COMPRESSED_SSX: BoxCode = BoxCode::new(*b"!ssx");
1741    /// 2D region quality ranking
1742    ///
1743    /// FourCC: `2dqr`
1744    ///
1745    /// Specification: _OMAF_
1746    pub const TWO_DQR: BoxCode = BoxCode::new(*b"2dqr");
1747    /// spatial relationship 2D source
1748    ///
1749    /// FourCC: `2dss`
1750    ///
1751    /// Specification: _OMAF_
1752    pub const TWO_DSS: BoxCode = BoxCode::new(*b"2dss");
1753    /// MVDDepthResolutionBox
1754    ///
1755    /// FourCC: `3dpr`
1756    ///
1757    /// Specification: _NALu Video_
1758    pub const THREE_DPR: BoxCode = BoxCode::new(*b"3dpr");
1759    /// MVD Scalability Information SEI Message Box
1760    ///
1761    /// FourCC: `3sib`
1762    ///
1763    /// Specification: _NALu Video_
1764    ///
1765    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
1766    pub const THREE_SIB: BoxCode = BoxCode::new(*b"3sib");
1767    /// Viewport Configuration
1768    ///
1769    /// FourCC: `6vpC`
1770    ///
1771    /// Specification: _V3C-SYS_
1772    ///
1773    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
1774    pub const SIX_VPC: BoxCode = BoxCode::new(*b"6vpC");
1775    /// Exif Metadata
1776    ///
1777    /// FourCC: `Exif`
1778    ///
1779    /// Specification: _JPXS_
1780    pub const EXIF: BoxCode = BoxCode::new(*b"Exif");
1781    /// ID3 version 2 container
1782    ///
1783    /// FourCC: `ID32`
1784    ///
1785    /// Specification: _id3v2_
1786    pub const ID32: BoxCode = BoxCode::new(*b"ID32");
1787    /// JPEG XL Signature
1788    ///
1789    /// FourCC: `JXL `
1790    ///
1791    /// Specification: _JPEG XL_
1792    pub const JXL: BoxCode = BoxCode::new(*b"JXL ");
1793    /// JPEG XS Signature
1794    ///
1795    /// FourCC: `JXS `
1796    ///
1797    /// Specification: _JPXS_
1798    pub const JXS: BoxCode = BoxCode::new(*b"JXS ");
1799    /// Mastering Display Metadata Box
1800    ///
1801    /// FourCC: `SmDm`
1802    ///
1803    /// Specification: _VPxx_
1804    ///
1805    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
1806    pub const SMDM: BoxCode = BoxCode::new(*b"SmDm");
1807    /// Unique Identifier Technology Solution
1808    ///
1809    /// FourCC: `UITS`
1810    ///
1811    /// Specification: _Universal Music Group_
1812    pub const UITS: BoxCode = BoxCode::new(*b"UITS");
1813    /// A3DConfigurationBox
1814    ///
1815    /// FourCC: `a3dC`
1816    ///
1817    /// Specification: _NALu Video_
1818    ///
1819    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
1820    pub const A3DC: BoxCode = BoxCode::new(*b"a3dC");
1821    /// Decoder-specific info for Auro-Cx audio
1822    ///
1823    /// FourCC: `acxd`
1824    ///
1825    /// Specification: _Auro_
1826    ///
1827    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
1828    pub const ACXD: BoxCode = BoxCode::new(*b"acxd");
1829    /// description of the content for accessibility purposes (similar to the HTML alt attribute); formatted as for the cprt user-data item
1830    ///
1831    /// FourCC: `ades`
1832    ///
1833    /// Specification: _Apple_
1834    pub const ADES: BoxCode = BoxCode::new(*b"ades");
1835    /// audio element description
1836    ///
1837    /// FourCC: `aedb`
1838    ///
1839    /// Specification: _ISO_
1840    pub const AEDB: BoxCode = BoxCode::new(*b"aedb");
1841    /// audio element box
1842    ///
1843    /// FourCC: `aelm`
1844    ///
1845    /// Specification: _ISO_
1846    pub const AELM: BoxCode = BoxCode::new(*b"aelm");
1847    /// audio element positioning interactivity polar box
1848    ///
1849    /// FourCC: `aepp`
1850    ///
1851    /// Specification: _ISO_
1852    pub const AEPP: BoxCode = BoxCode::new(*b"aepp");
1853    /// audio element prominence interactivity box
1854    ///
1855    /// FourCC: `aepr`
1856    ///
1857    /// Specification: _ISO_
1858    pub const AEPR: BoxCode = BoxCode::new(*b"aepr");
1859    /// audio element selection box
1860    ///
1861    /// FourCC: `aesb`
1862    ///
1863    /// Specification: _ISO_
1864    pub const AESB: BoxCode = BoxCode::new(*b"aesb");
1865    /// audio element selection description box
1866    ///
1867    /// FourCC: `aesd`
1868    ///
1869    /// Specification: _ISO_
1870    pub const AESD: BoxCode = BoxCode::new(*b"aesd");
1871    /// Asset information to identify, license and play
1872    ///
1873    /// FourCC: `ainf`
1874    ///
1875    /// Specification: _DECE_
1876    pub const AINF: BoxCode = BoxCode::new(*b"ainf");
1877    /// Album title and track number for media
1878    ///
1879    /// FourCC: `albm`
1880    ///
1881    /// Specification: _3GPP_
1882    pub const ALBM: BoxCode = BoxCode::new(*b"albm");
1883    /// Alpha mode (straight vs premultiplied alpha) signaling
1884    ///
1885    /// FourCC: `almo`
1886    ///
1887    /// Specification: _Apple_
1888    ///
1889    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
1890    pub const ALMO: BoxCode = BoxCode::new(*b"almo");
1891    /// Album loudness base
1892    ///
1893    /// FourCC: `alou`
1894    ///
1895    /// Specification: _ISO_
1896    pub const ALOU: BoxCode = BoxCode::new(*b"alou");
1897    /// Ambient viewing environment
1898    ///
1899    /// FourCC: `amve`
1900    ///
1901    /// Specification: _ISO_
1902    ///
1903    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
1904    pub const AMVE: BoxCode = BoxCode::new(*b"amve");
1905    /// Name of the camera angle through which the clip was shot
1906    ///
1907    /// FourCC: `angl`
1908    ///
1909    /// Specification: _Apple_
1910    pub const ANGL: BoxCode = BoxCode::new(*b"angl");
1911    /// APV Codec Configuration Box
1912    ///
1913    /// FourCC: `apvC`
1914    ///
1915    /// Specification: _OpenAPV_
1916    ///
1917    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
1918    pub const APVC: BoxCode = BoxCode::new(*b"apvC");
1919    /// audio rendering indication
1920    ///
1921    /// FourCC: `ardi`
1922    ///
1923    /// Specification: _ISO_
1924    pub const ARDI: BoxCode = BoxCode::new(*b"ardi");
1925    /// alternative startup sequence properties
1926    ///
1927    /// FourCC: `assp`
1928    ///
1929    /// Specification: _ISO_
1930    pub const ASSP: BoxCode = BoxCode::new(*b"assp");
1931    /// Author of the media
1932    ///
1933    /// FourCC: `auth`
1934    ///
1935    /// Specification: _3GPP_
1936    pub const AUTH: BoxCode = BoxCode::new(*b"auth");
1937    /// Auxiliary track type information
1938    ///
1939    /// FourCC: `auxi`
1940    ///
1941    /// Specification: _HEIF_
1942    ///
1943    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
1944    pub const AUXI: BoxCode = BoxCode::new(*b"auxi");
1945    /// AOM Video Codec Configuration
1946    ///
1947    /// FourCC: `av1C`
1948    ///
1949    /// Specification: _AV1-ISOBMFF_
1950    ///
1951    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
1952    pub const AV1C: BoxCode = BoxCode::new(*b"av1C");
1953    /// AVC Configuration
1954    ///
1955    /// FourCC: `avcC`
1956    ///
1957    /// Specification: _NALu Video_
1958    ///
1959    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
1960    pub const AVCC: BoxCode = BoxCode::new(*b"avcC");
1961    /// AVC NAL Unit Storage Box
1962    ///
1963    /// FourCC: `avcn`
1964    ///
1965    /// Specification: _DECE_
1966    pub const AVCN: BoxCode = BoxCode::new(*b"avcn");
1967    /// Box Index
1968    ///
1969    /// FourCC: `bidx`
1970    ///
1971    /// Specification: _ISO-Partial_
1972    pub const BIDX: BoxCode = BoxCode::new(*b"bidx");
1973    /// Base location and purchase location for license acquisition
1974    ///
1975    /// FourCC: `bloc`
1976    ///
1977    /// Specification: _DECE_
1978    pub const BLOC: BoxCode = BoxCode::new(*b"bloc");
1979    /// Buffer Model Description
1980    ///
1981    /// FourCC: `bmdm`
1982    ///
1983    /// Specification: _JPXS_
1984    pub const BMDM: BoxCode = BoxCode::new(*b"bmdm");
1985    /// Bits per component
1986    ///
1987    /// FourCC: `bpcc`
1988    ///
1989    /// Specification: _JPEG2000_
1990    pub const BPCC: BoxCode = BoxCode::new(*b"bpcc");
1991    /// Brotli-compressed box
1992    ///
1993    /// FourCC: `brob`
1994    ///
1995    /// Specification: _JPEG XL_
1996    pub const BROB: BoxCode = BoxCode::new(*b"brob");
1997    /// Bit-rate information
1998    ///
1999    /// FourCC: `btrt`
2000    ///
2001    /// Specification: _ISO_
2002    ///
2003    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2004    pub const BTRT: BoxCode = BoxCode::new(*b"btrt");
2005    /// Buffering information
2006    ///
2007    /// FourCC: `buff`
2008    ///
2009    /// Specification: _NALu Video_
2010    pub const BUFF: BoxCode = BoxCode::new(*b"buff");
2011    /// binary XML container
2012    ///
2013    /// FourCC: `bxml`
2014    ///
2015    /// Specification: _ISO_
2016    pub const BXML: BoxCode = BoxCode::new(*b"bxml");
2017    /// OMA DRM Content ID
2018    ///
2019    /// FourCC: `ccid`
2020    ///
2021    /// Specification: _OMA DRM 2.1_
2022    pub const CCID: BoxCode = BoxCode::new(*b"ccid");
2023    /// Content colour volume
2024    ///
2025    /// FourCC: `cclv`
2026    ///
2027    /// Specification: _ISO_
2028    ///
2029    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2030    pub const CCLV: BoxCode = BoxCode::new(*b"cclv");
2031    /// Coding constraints box
2032    ///
2033    /// FourCC: `ccst`
2034    ///
2035    /// Specification: _HEIF_
2036    ///
2037    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2038    pub const CCST: BoxCode = BoxCode::new(*b"ccst");
2039    /// type and ordering of the components within the codestream
2040    ///
2041    /// FourCC: `cdef`
2042    ///
2043    /// Specification: _JPEG2000_
2044    pub const CDEF: BoxCode = BoxCode::new(*b"cdef");
2045    /// Channel layout
2046    ///
2047    /// FourCC: `chnl`
2048    ///
2049    /// Specification: _ISO_
2050    ///
2051    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2052    pub const CHNL: BoxCode = BoxCode::new(*b"chnl");
2053    /// complete track information
2054    ///
2055    /// FourCC: `cinf`
2056    ///
2057    /// Specification: _ISO_
2058    pub const CINF: BoxCode = BoxCode::new(*b"cinf");
2059    /// Clean aperture
2060    ///
2061    /// FourCC: `clap`
2062    ///
2063    /// Specification: _ISO_
2064    ///
2065    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2066    pub const CLAP: BoxCode = BoxCode::new(*b"clap");
2067    /// Component Reference Level
2068    ///
2069    /// FourCC: `clev`
2070    ///
2071    /// Specification: _UNCV_
2072    ///
2073    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2074    pub const CLEV: BoxCode = BoxCode::new(*b"clev");
2075    /// Name of the clip file
2076    ///
2077    /// FourCC: `clfn`
2078    ///
2079    /// Specification: _Apple_
2080    pub const CLFN: BoxCode = BoxCode::new(*b"clfn");
2081    /// Identifier of the clip
2082    ///
2083    /// FourCC: `clid`
2084    ///
2085    /// Specification: _Apple_
2086    pub const CLID: BoxCode = BoxCode::new(*b"clid");
2087    /// Visual clipping region container
2088    ///
2089    /// FourCC: `clip`
2090    ///
2091    /// Specification: _QT_
2092    pub const CLIP: BoxCode = BoxCode::new(*b"clip");
2093    /// Content Light Level
2094    ///
2095    /// FourCC: `clli`
2096    ///
2097    /// Specification: _ISO_
2098    ///
2099    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2100    pub const CLLI: BoxCode = BoxCode::new(*b"clli");
2101    /// Chroma Location
2102    ///
2103    /// FourCC: `cloc`
2104    ///
2105    /// Specification: _UNCV_
2106    ///
2107    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2108    pub const CLOC: BoxCode = BoxCode::new(*b"cloc");
2109    /// Classification of the media
2110    ///
2111    /// FourCC: `clsf`
2112    ///
2113    /// Specification: _3GPP_
2114    pub const CLSF: BoxCode = BoxCode::new(*b"clsf");
2115    /// mapping between a palette and codestream components
2116    ///
2117    /// FourCC: `cmap`
2118    ///
2119    /// Specification: _JPEG2000_
2120    pub const CMAP: BoxCode = BoxCode::new(*b"cmap");
2121    /// Identifier of the camera
2122    ///
2123    /// FourCC: `cmid`
2124    ///
2125    /// Specification: _Apple_
2126    pub const CMID: BoxCode = BoxCode::new(*b"cmid");
2127    /// Name that identifies the camera
2128    ///
2129    /// FourCC: `cmnm`
2130    ///
2131    /// Specification: _Apple_
2132    pub const CMNM: BoxCode = BoxCode::new(*b"cmnm");
2133    /// Component Definition
2134    ///
2135    /// FourCC: `cmpd`
2136    ///
2137    /// Specification: _UNCV_
2138    ///
2139    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2140    pub const CMPD: BoxCode = BoxCode::new(*b"cmpd");
2141    /// 64-bit chunk offset
2142    ///
2143    /// FourCC: `co64`
2144    ///
2145    /// Specification: _ISO_
2146    pub const CO64: BoxCode = BoxCode::new(*b"co64");
2147    /// composition information
2148    ///
2149    /// FourCC: `coif`
2150    ///
2151    /// Specification: _OMAF_
2152    pub const COIF: BoxCode = BoxCode::new(*b"coif");
2153    /// Content Information Box
2154    ///
2155    /// FourCC: `coin`
2156    ///
2157    /// Specification: _DECE_
2158    pub const COIN: BoxCode = BoxCode::new(*b"coin");
2159    /// Name of the collection from which the media comes
2160    ///
2161    /// FourCC: `coll`
2162    ///
2163    /// Specification: _3GPP_
2164    ///
2165    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2166    pub const COLL: BoxCode = BoxCode::new(*b"coll");
2167    /// specifies the colourspace of the image
2168    ///
2169    /// FourCC: `colr`
2170    ///
2171    /// Specification: _JPEG2000_
2172    ///
2173    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2174    pub const COLR: BoxCode = BoxCode::new(*b"colr");
2175    /// coverage information
2176    ///
2177    /// FourCC: `covi`
2178    ///
2179    /// Specification: _OMAF_
2180    pub const COVI: BoxCode = BoxCode::new(*b"covi");
2181    /// Component Palette Configuration
2182    ///
2183    /// FourCC: `cpal`
2184    ///
2185    /// Specification: _UNCV_
2186    ///
2187    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2188    pub const CPAL: BoxCode = BoxCode::new(*b"cpal");
2189    /// Component Pattern Definition
2190    ///
2191    /// FourCC: `cpat`
2192    ///
2193    /// Specification: _UNCV_
2194    ///
2195    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2196    pub const CPAT: BoxCode = BoxCode::new(*b"cpat");
2197    /// copyright etc.
2198    ///
2199    /// FourCC: `cprt`
2200    ///
2201    /// Specification: _ISO_
2202    pub const CPRT: BoxCode = BoxCode::new(*b"cprt");
2203    /// Visual clipping region definition
2204    ///
2205    /// FourCC: `crgn`
2206    ///
2207    /// Specification: _QT_
2208    pub const CRGN: BoxCode = BoxCode::new(*b"crgn");
2209    /// reserved for ClockReferenceStream header
2210    ///
2211    /// FourCC: `crhd`
2212    ///
2213    /// Specification: _MP4v2_
2214    pub const CRHD: BoxCode = BoxCode::new(*b"crhd");
2215    /// Compact sample to group used in QuickTime File Format
2216    ///
2217    /// FourCC: `csgm`
2218    ///
2219    /// Specification: _QT_
2220    pub const CSGM: BoxCode = BoxCode::new(*b"csgm");
2221    /// compact sample to group
2222    ///
2223    /// FourCC: `csgp`
2224    ///
2225    /// Specification: _ISO_
2226    pub const CSGP: BoxCode = BoxCode::new(*b"csgp");
2227    /// composition to decode timeline mapping
2228    ///
2229    /// FourCC: `cslg`
2230    ///
2231    /// Specification: _ISO_
2232    pub const CSLG: BoxCode = BoxCode::new(*b"cslg");
2233    /// corrected wall clock start time
2234    ///
2235    /// FourCC: `cstb`
2236    ///
2237    /// Specification: _ONVIF_
2238    pub const CSTB: BoxCode = BoxCode::new(*b"cstb");
2239    /// Track color-table
2240    ///
2241    /// FourCC: `ctab`
2242    ///
2243    /// Specification: _QT_
2244    pub const CTAB: BoxCode = BoxCode::new(*b"ctab");
2245    /// (composition) time to sample
2246    ///
2247    /// FourCC: `ctts`
2248    ///
2249    /// Specification: _ISO_
2250    pub const CTTS: BoxCode = BoxCode::new(*b"ctts");
2251    /// HDR Vivid Configuration
2252    ///
2253    /// FourCC: `cuvv`
2254    ///
2255    /// Specification: _UWA_
2256    ///
2257    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2258    pub const CUVV: BoxCode = BoxCode::new(*b"cuvv");
2259    /// OMA DRM Cover URI
2260    ///
2261    /// FourCC: `cvru`
2262    ///
2263    /// Specification: _OMA DRM 2.1_
2264    pub const CVRU: BoxCode = BoxCode::new(*b"cvru");
2265    /// Decoder specific info for AC-3 audio
2266    ///
2267    /// FourCC: `dac3`
2268    ///
2269    /// Specification: _ETSI AC-3_
2270    ///
2271    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2272    pub const DAC3: BoxCode = BoxCode::new(*b"dac3");
2273    /// Decoder specific info for AC-4 audio
2274    ///
2275    /// FourCC: `dac4`
2276    ///
2277    /// Specification: _ETSI AC-4_
2278    ///
2279    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2280    pub const DAC4: BoxCode = BoxCode::new(*b"dac4");
2281    /// Date and time, formatted according to ISO 8601, when the content was created. For clips captured by recording devices, this is typically the date and time when the clip’s recording started.
2282    ///
2283    /// FourCC: `date`
2284    ///
2285    /// Specification: _Apple_
2286    pub const DATE: BoxCode = BoxCode::new(*b"date");
2287    /// Decoder configuration for AVS3-P3 Codec
2288    ///
2289    /// FourCC: `dca3`
2290    ///
2291    /// Specification: _T-AI-109.7_
2292    ///
2293    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2294    pub const DCA3: BoxCode = BoxCode::new(*b"dca3");
2295    /// Marlin DCF Duration, user-data atom type
2296    ///
2297    /// FourCC: `dcfD`
2298    ///
2299    /// Specification: _OMArlin_
2300    pub const DCFD: BoxCode = BoxCode::new(*b"dcfD");
2301    /// Decoder specific info for Enhanced AC-3 audio
2302    ///
2303    /// FourCC: `dec3`
2304    ///
2305    /// Specification: _ETSI AC-3_
2306    ///
2307    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2308    pub const DEC3: BoxCode = BoxCode::new(*b"dec3");
2309    /// Free Lossless Audio Codec (FLAC) specific data
2310    ///
2311    /// FourCC: `dfLa`
2312    ///
2313    /// Specification: _FLAC_
2314    ///
2315    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2316    pub const DFLA: BoxCode = BoxCode::new(*b"dfLa");
2317    /// Default HEVC extractor constructor box
2318    ///
2319    /// FourCC: `dhec`
2320    ///
2321    /// Specification: _NALu Video_
2322    ///
2323    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2324    pub const DHEC: BoxCode = BoxCode::new(*b"dhec");
2325    /// Data Integrity Hash
2326    ///
2327    /// FourCC: `dihd`
2328    ///
2329    /// Specification: _ISO-Partial_
2330    pub const DIHD: BoxCode = BoxCode::new(*b"dihd");
2331    /// data information box, container
2332    ///
2333    /// FourCC: `dinf`
2334    ///
2335    /// Specification: _ISO_
2336    pub const DINF: BoxCode = BoxCode::new(*b"dinf");
2337    /// Data Integrity
2338    ///
2339    /// FourCC: `dint`
2340    ///
2341    /// Specification: _ISO-Partial_
2342    pub const DINT: BoxCode = BoxCode::new(*b"dint");
2343    /// Disparity Information
2344    ///
2345    /// FourCC: `disi`
2346    ///
2347    /// Specification: _UNCV_
2348    ///
2349    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2350    pub const DISI: BoxCode = BoxCode::new(*b"disi");
2351    /// Downmix instructions
2352    ///
2353    /// FourCC: `dmix`
2354    ///
2355    /// Specification: _ISO_
2356    ///
2357    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2358    pub const DMIX: BoxCode = BoxCode::new(*b"dmix");
2359    /// Decoder specific info for MLP audio
2360    ///
2361    /// FourCC: `dmlp`
2362    ///
2363    /// Specification: _Dolby MLP_
2364    ///
2365    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2366    pub const DMLP: BoxCode = BoxCode::new(*b"dmlp");
2367    /// Mastering Display Metadata
2368    ///
2369    /// FourCC: `dmon`
2370    ///
2371    /// Specification: _JPXS_
2372    pub const DMON: BoxCode = BoxCode::new(*b"dmon");
2373    /// data reference box, declares source(s) of media data in track
2374    ///
2375    /// FourCC: `dref`
2376    ///
2377    /// Specification: _ISO_
2378    pub const DREF: BoxCode = BoxCode::new(*b"dref");
2379    /// Media description
2380    ///
2381    /// FourCC: `dscp`
2382    ///
2383    /// Specification: _3GPP_
2384    pub const DSCP: BoxCode = BoxCode::new(*b"dscp");
2385    /// DVB Sample Group Description Box
2386    ///
2387    /// FourCC: `dsgd`
2388    ///
2389    /// Specification: _DVB_
2390    pub const DSGD: BoxCode = BoxCode::new(*b"dsgd");
2391    /// DVB Sample to Group Box
2392    ///
2393    /// FourCC: `dstg`
2394    ///
2395    /// Specification: _DVB_
2396    pub const DSTG: BoxCode = BoxCode::new(*b"dstg");
2397    /// Dolby Vision Configuration
2398    ///
2399    /// FourCC: `dvcC`
2400    ///
2401    /// Specification: _Dolby Vision_
2402    ///
2403    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2404    pub const DVCC: BoxCode = BoxCode::new(*b"dvcC");
2405    /// Dolby Vision Extended Configuration
2406    ///
2407    /// FourCC: `dvvC`
2408    ///
2409    /// Specification: _Dolby Vision_
2410    ///
2411    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2412    pub const DVVC: BoxCode = BoxCode::new(*b"dvvC");
2413    /// Dolby Vision Extended Configuration 2
2414    ///
2415    /// FourCC: `dvwC`
2416    ///
2417    /// Specification: _Dolby Vision_
2418    ///
2419    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2420    pub const DVWC: BoxCode = BoxCode::new(*b"dvwC");
2421    /// Extrinsic camera parameters
2422    ///
2423    /// FourCC: `ecam`
2424    ///
2425    /// Specification: _NALu Video_
2426    ///
2427    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2428    pub const ECAM: BoxCode = BoxCode::new(*b"ecam");
2429    /// edit list container
2430    ///
2431    /// FourCC: `edts`
2432    ///
2433    /// Specification: _ISO_
2434    pub const EDTS: BoxCode = BoxCode::new(*b"edts");
2435    /// Extended Language Tag
2436    ///
2437    /// FourCC: `elng`
2438    ///
2439    /// Specification: _QT_
2440    pub const ELNG: BoxCode = BoxCode::new(*b"elng");
2441    /// an edit list
2442    ///
2443    /// FourCC: `elst`
2444    ///
2445    /// Specification: _ISO_
2446    pub const ELST: BoxCode = BoxCode::new(*b"elst");
2447    /// event message
2448    ///
2449    /// FourCC: `emsg`
2450    ///
2451    /// Specification: _DASH_
2452    pub const EMSG: BoxCode = BoxCode::new(*b"emsg");
2453    /// Elementary stream descriptor
2454    ///
2455    /// FourCC: `esds`
2456    ///
2457    /// Specification: _MP4v2_
2458    ///
2459    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2460    pub const ESDS: BoxCode = BoxCode::new(*b"esds");
2461    /// extended type and type combination
2462    ///
2463    /// FourCC: `etyp`
2464    ///
2465    /// Specification: _ISO_
2466    pub const ETYP: BoxCode = BoxCode::new(*b"etyp");
2467    /// EVC configuration
2468    ///
2469    /// FourCC: `evcC`
2470    ///
2471    /// Specification: _NALu Video_
2472    ///
2473    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2474    pub const EVCC: BoxCode = BoxCode::new(*b"evcC");
2475    /// Configuration for EVC slice component track
2476    ///
2477    /// FourCC: `evsC`
2478    ///
2479    /// Specification: _NALu Video_
2480    ///
2481    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2482    pub const EVSC: BoxCode = BoxCode::new(*b"evsC");
2483    /// Event information
2484    ///
2485    /// FourCC: `evti`
2486    ///
2487    /// Specification: _ATSC 3.0 A337_
2488    pub const EVTI: BoxCode = BoxCode::new(*b"evti");
2489    /// File delivery information (item info extension)
2490    ///
2491    /// FourCC: `fdel`
2492    ///
2493    /// Specification: _ISO_
2494    pub const FDEL: BoxCode = BoxCode::new(*b"fdel");
2495    /// FEC Informatiom
2496    ///
2497    /// FourCC: `feci`
2498    ///
2499    /// Specification: _ISO_
2500    pub const FECI: BoxCode = BoxCode::new(*b"feci");
2501    /// FEC Reservoir
2502    ///
2503    /// FourCC: `fecr`
2504    ///
2505    /// Specification: _ISO_
2506    pub const FECR: BoxCode = BoxCode::new(*b"fecr");
2507    /// Box File Index
2508    ///
2509    /// FourCC: `fidx`
2510    ///
2511    /// Specification: _ISO-Partial_
2512    pub const FIDX: BoxCode = BoxCode::new(*b"fidx");
2513    /// Field Coding
2514    ///
2515    /// FourCC: `fiel`
2516    ///
2517    /// Specification: _MJ2_
2518    ///
2519    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2520    pub const FIEL: BoxCode = BoxCode::new(*b"fiel");
2521    /// FD Item Information
2522    ///
2523    /// FourCC: `fiin`
2524    ///
2525    /// Specification: _ISO_
2526    pub const FIIN: BoxCode = BoxCode::new(*b"fiin");
2527    /// File Reservoir
2528    ///
2529    /// FourCC: `fire`
2530    ///
2531    /// Specification: _ISO_
2532    pub const FIRE: BoxCode = BoxCode::new(*b"fire");
2533    /// fisheye omnidirectional video
2534    ///
2535    /// FourCC: `fovd`
2536    ///
2537    /// Specification: _OMAF_
2538    pub const FOVD: BoxCode = BoxCode::new(*b"fovd");
2539    /// fisheye video essential info
2540    ///
2541    /// FourCC: `fovi`
2542    ///
2543    /// Specification: _OMAF_
2544    pub const FOVI: BoxCode = BoxCode::new(*b"fovi");
2545    /// Frame Packing Information
2546    ///
2547    /// FourCC: `fpac`
2548    ///
2549    /// Specification: _UNCV_
2550    ///
2551    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2552    pub const FPAC: BoxCode = BoxCode::new(*b"fpac");
2553    /// File Partition
2554    ///
2555    /// FourCC: `fpar`
2556    ///
2557    /// Specification: _ISO_
2558    pub const FPAR: BoxCode = BoxCode::new(*b"fpar");
2559    /// free space
2560    ///
2561    /// FourCC: `free`
2562    ///
2563    /// Specification: _ISO_
2564    pub const FREE: BoxCode = BoxCode::new(*b"free");
2565    /// original format box
2566    ///
2567    /// FourCC: `frma`
2568    ///
2569    /// Specification: _ISO_
2570    pub const FRMA: BoxCode = BoxCode::new(*b"frma");
2571    /// Front Part
2572    ///
2573    /// FourCC: `frpa`
2574    ///
2575    /// Specification: _ISO-Partial_
2576    pub const FRPA: BoxCode = BoxCode::new(*b"frpa");
2577    /// file type and compatibility
2578    ///
2579    /// FourCC: `ftyp`
2580    ///
2581    /// Specification: _ISO_
2582    pub const FTYP: BoxCode = BoxCode::new(*b"ftyp");
2583    /// fisheye video supplemental info
2584    ///
2585    /// FourCC: `fvsi`
2586    ///
2587    /// Specification: _OMAF_
2588    pub const FVSI: BoxCode = BoxCode::new(*b"fvsi");
2589    /// Group ID to name
2590    ///
2591    /// FourCC: `gitn`
2592    ///
2593    /// Specification: _ISO_
2594    pub const GITN: BoxCode = BoxCode::new(*b"gitn");
2595    /// Media genre
2596    ///
2597    /// FourCC: `gnre`
2598    ///
2599    /// Specification: _3GPP_
2600    pub const GNRE: BoxCode = BoxCode::new(*b"gnre");
2601    /// OMA DRM Group ID
2602    ///
2603    /// FourCC: `grpi`
2604    ///
2605    /// Specification: _OMA DRM 2.0_
2606    pub const GRPI: BoxCode = BoxCode::new(*b"grpi");
2607    /// Groups list box
2608    ///
2609    /// FourCC: `grpl`
2610    ///
2611    /// Specification: _ISO_
2612    pub const GRPL: BoxCode = BoxCode::new(*b"grpl");
2613    /// handler, declares the media (handler) type
2614    ///
2615    /// FourCC: `hdlr`
2616    ///
2617    /// Specification: _ISO_
2618    pub const HDLR: BoxCode = BoxCode::new(*b"hdlr");
2619    /// hint information
2620    ///
2621    /// FourCC: `hinf`
2622    ///
2623    /// Specification: _ISO_
2624    pub const HINF: BoxCode = BoxCode::new(*b"hinf");
2625    /// hint media header, overall information (hint track only)
2626    ///
2627    /// FourCC: `hmhd`
2628    ///
2629    /// Specification: _ISO_
2630    pub const HMHD: BoxCode = BoxCode::new(*b"hmhd");
2631    /// Hint information
2632    ///
2633    /// FourCC: `hnti`
2634    ///
2635    /// Specification: _ISO_
2636    pub const HNTI: BoxCode = BoxCode::new(*b"hnti");
2637    /// Hipix Rich Picture (user-data or meta-data)
2638    ///
2639    /// FourCC: `hpix`
2640    ///
2641    /// Specification: _Hipix_
2642    pub const HPIX: BoxCode = BoxCode::new(*b"hpix");
2643    /// HEVC Configuration
2644    ///
2645    /// FourCC: `hvcC`
2646    ///
2647    /// Specification: _NALu Video_
2648    ///
2649    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2650    pub const HVCC: BoxCode = BoxCode::new(*b"hvcC");
2651    /// HEVC Tile Configuration
2652    ///
2653    /// FourCC: `hvtC`
2654    ///
2655    /// Specification: _NALu Video_
2656    ///
2657    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2658    pub const HVTC: BoxCode = BoxCode::new(*b"hvtC");
2659    /// Intrinsic camera parameters
2660    ///
2661    /// FourCC: `icam`
2662    ///
2663    /// Specification: _NALu Video_
2664    ///
2665    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2666    pub const ICAM: BoxCode = BoxCode::new(*b"icam");
2667    /// OMA DRM Icon URI
2668    ///
2669    /// FourCC: `icnu`
2670    ///
2671    /// Specification: _OMA DRM 2.0_
2672    pub const ICNU: BoxCode = BoxCode::new(*b"icnu");
2673    /// Item data
2674    ///
2675    /// FourCC: `idat`
2676    ///
2677    /// Specification: _ISO_
2678    pub const IDAT: BoxCode = BoxCode::new(*b"idat");
2679    /// Image Header
2680    ///
2681    /// FourCC: `ihdr`
2682    ///
2683    /// Specification: _JPEG2000_
2684    pub const IHDR: BoxCode = BoxCode::new(*b"ihdr");
2685    /// item information
2686    ///
2687    /// FourCC: `iinf`
2688    ///
2689    /// Specification: _ISO_
2690    pub const IINF: BoxCode = BoxCode::new(*b"iinf");
2691    /// item location
2692    ///
2693    /// FourCC: `iloc`
2694    ///
2695    /// Specification: _ISO_
2696    pub const ILOC: BoxCode = BoxCode::new(*b"iloc");
2697    /// Track input map definition
2698    ///
2699    /// FourCC: `imap`
2700    ///
2701    /// Specification: _QT_
2702    pub const IMAP: BoxCode = BoxCode::new(*b"imap");
2703    /// Identified media data
2704    ///
2705    /// FourCC: `imda`
2706    ///
2707    /// Specification: _ISO_
2708    pub const IMDA: BoxCode = BoxCode::new(*b"imda");
2709    /// IPMP Information box
2710    ///
2711    /// FourCC: `imif`
2712    ///
2713    /// Specification: _ISO_
2714    pub const IMIF: BoxCode = BoxCode::new(*b"imif");
2715    /// Item information entry
2716    ///
2717    /// FourCC: `infe`
2718    ///
2719    /// Specification: _ISO_
2720    pub const INFE: BoxCode = BoxCode::new(*b"infe");
2721    /// OMA DRM Info URL
2722    ///
2723    /// FourCC: `infu`
2724    ///
2725    /// Specification: _OMA DRM 2.0_
2726    pub const INFU: BoxCode = BoxCode::new(*b"infu");
2727    /// Object Descriptor container box
2728    ///
2729    /// FourCC: `iods`
2730    ///
2731    /// Specification: _MP4v2_
2732    pub const IODS: BoxCode = BoxCode::new(*b"iods");
2733    /// ItemPropertyContainerBox
2734    ///
2735    /// FourCC: `ipco`
2736    ///
2737    /// Specification: _ISO_
2738    pub const IPCO: BoxCode = BoxCode::new(*b"ipco");
2739    /// reserved for IPMP Stream header
2740    ///
2741    /// FourCC: `iphd`
2742    ///
2743    /// Specification: _MP4v2_
2744    pub const IPHD: BoxCode = BoxCode::new(*b"iphd");
2745    /// ItemPropertyAssociation
2746    ///
2747    /// FourCC: `ipma`
2748    ///
2749    /// Specification: _ISO_
2750    pub const IPMA: BoxCode = BoxCode::new(*b"ipma");
2751    /// IPMP Control Box
2752    ///
2753    /// FourCC: `ipmc`
2754    ///
2755    /// Specification: _ISO_
2756    pub const IPMC: BoxCode = BoxCode::new(*b"ipmc");
2757    /// item protection
2758    ///
2759    /// FourCC: `ipro`
2760    ///
2761    /// Specification: _ISO_
2762    pub const IPRO: BoxCode = BoxCode::new(*b"ipro");
2763    /// Item Properties Box
2764    ///
2765    /// FourCC: `iprp`
2766    ///
2767    /// Specification: _ISO_
2768    pub const IPRP: BoxCode = BoxCode::new(*b"iprp");
2769    /// Item reference
2770    ///
2771    /// FourCC: `iref`
2772    ///
2773    /// Specification: _ISO_
2774    pub const IREF: BoxCode = BoxCode::new(*b"iref");
2775    /// SVC region of interest box
2776    ///
2777    /// FourCC: `iroi`
2778    ///
2779    /// Specification: _NALu Video_
2780    pub const IROI: BoxCode = BoxCode::new(*b"iroi");
2781    /// JPEG 2000 header info
2782    ///
2783    /// FourCC: `j2kH`
2784    ///
2785    /// Specification: _J2KHEIF_
2786    pub const J2KH: BoxCode = BoxCode::new(*b"j2kH");
2787    /// JPEG 2000 prefix
2788    ///
2789    /// FourCC: `j2kP`
2790    ///
2791    /// Specification: _J2KHEIF_
2792    pub const J2KP: BoxCode = BoxCode::new(*b"j2kP");
2793    /// JPEG 2000 Signature
2794    ///
2795    /// FourCC: `jP  `
2796    ///
2797    /// Specification: _JPEG2000_
2798    pub const JP: BoxCode = BoxCode::new(*b"jP  ");
2799    /// JPEG bitstream reconstruction data
2800    ///
2801    /// FourCC: `jbrd`
2802    ///
2803    /// Specification: _JPEG XL_
2804    pub const JBRD: BoxCode = BoxCode::new(*b"jbrd");
2805    /// JPEG 2000 contiguous codestream
2806    ///
2807    /// FourCC: `jp2c`
2808    ///
2809    /// Specification: _JPEG2000_
2810    pub const JP2C: BoxCode = BoxCode::new(*b"jp2c");
2811    /// Header
2812    ///
2813    /// FourCC: `jp2h`
2814    ///
2815    /// Specification: _JPEG2000_
2816    pub const JP2H: BoxCode = BoxCode::new(*b"jp2h");
2817    /// intellectual property information
2818    ///
2819    /// FourCC: `jp2i`
2820    ///
2821    /// Specification: _JPEG2000_
2822    pub const JP2I: BoxCode = BoxCode::new(*b"jp2i");
2823    /// JPEG Configuration
2824    ///
2825    /// FourCC: `jpgC`
2826    ///
2827    /// Specification: _HEIF_
2828    ///
2829    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2830    pub const JPGC: BoxCode = BoxCode::new(*b"jpgC");
2831    /// JPEG XS Video Transport Parameter
2832    ///
2833    /// FourCC: `jptp`
2834    ///
2835    /// Specification: _JPXS_
2836    pub const JPTP: BoxCode = BoxCode::new(*b"jptp");
2837    /// JPEG XS Video Information
2838    ///
2839    /// FourCC: `jpvi`
2840    ///
2841    /// Specification: _JPXS_
2842    pub const JPVI: BoxCode = BoxCode::new(*b"jpvi");
2843    /// JPEG XS Video Support
2844    ///
2845    /// FourCC: `jpvs`
2846    ///
2847    /// Specification: _JPXS_
2848    pub const JPVS: BoxCode = BoxCode::new(*b"jpvs");
2849    /// JPEG Universal Metadata Box Format (JUMBF)
2850    ///
2851    /// FourCC: `jumb`
2852    ///
2853    /// Specification: _JPEG Systems_
2854    pub const JUMB: BoxCode = BoxCode::new(*b"jumb");
2855    /// JPEG XL Codestream
2856    ///
2857    /// FourCC: `jxlc`
2858    ///
2859    /// Specification: _JPEG XL_
2860    pub const JXLC: BoxCode = BoxCode::new(*b"jxlc");
2861    /// JPEG XL Frame Index
2862    ///
2863    /// FourCC: `jxli`
2864    ///
2865    /// Specification: _JPEG XL_
2866    pub const JXLI: BoxCode = BoxCode::new(*b"jxli");
2867    /// JPEG XL Level
2868    ///
2869    /// FourCC: `jxll`
2870    ///
2871    /// Specification: _JPEG XL_
2872    pub const JXLL: BoxCode = BoxCode::new(*b"jxll");
2873    /// JPEG XL Partial Codestream
2874    ///
2875    /// FourCC: `jxlp`
2876    ///
2877    /// Specification: _JPEG XL_
2878    pub const JXLP: BoxCode = BoxCode::new(*b"jxlp");
2879    /// JPEG XS Profile and Level
2880    ///
2881    /// FourCC: `jxpl`
2882    ///
2883    /// Specification: _JPXS_
2884    pub const JXPL: BoxCode = BoxCode::new(*b"jxpl");
2885    /// Track kind
2886    ///
2887    /// FourCC: `kind`
2888    ///
2889    /// Specification: _ISO_
2890    pub const KIND: BoxCode = BoxCode::new(*b"kind");
2891    /// Compressed visual track matte
2892    ///
2893    /// FourCC: `kmat`
2894    ///
2895    /// Specification: _QT_
2896    pub const KMAT: BoxCode = BoxCode::new(*b"kmat");
2897    /// Media keywords
2898    ///
2899    /// FourCC: `kywd`
2900    ///
2901    /// Specification: _3GPP_
2902    pub const KYWD: BoxCode = BoxCode::new(*b"kywd");
2903    /// Label box
2904    ///
2905    /// FourCC: `labl`
2906    ///
2907    /// Specification: _ISO_
2908    pub const LABL: BoxCode = BoxCode::new(*b"labl");
2909    /// Tier dependency box
2910    ///
2911    /// FourCC: `ldep`
2912    ///
2913    /// Specification: _NALu Video_
2914    pub const LDEP: BoxCode = BoxCode::new(*b"ldep");
2915    /// Loudness equalization instructions
2916    ///
2917    /// FourCC: `leqi`
2918    ///
2919    /// Specification: _DRC_
2920    ///
2921    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2922    pub const LEQI: BoxCode = BoxCode::new(*b"leqi");
2923    /// Leval assignment
2924    ///
2925    /// FourCC: `leva`
2926    ///
2927    /// Specification: _ISO_
2928    pub const LEVA: BoxCode = BoxCode::new(*b"leva");
2929    /// Layered HEVC Configuration
2930    ///
2931    /// FourCC: `lhvC`
2932    ///
2933    /// Specification: _NALu Video_
2934    ///
2935    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2936    pub const LHVC: BoxCode = BoxCode::new(*b"lhvC");
2937    /// Track pre-load definitions
2938    ///
2939    /// FourCC: `load`
2940    ///
2941    /// Specification: _QT_
2942    pub const LOAD: BoxCode = BoxCode::new(*b"load");
2943    /// Media location information
2944    ///
2945    /// FourCC: `loci`
2946    ///
2947    /// Specification: _3GPP_
2948    pub const LOCI: BoxCode = BoxCode::new(*b"loci");
2949    /// Looping behavior
2950    ///
2951    /// FourCC: `loop`
2952    ///
2953    /// Specification: _WhatsApp_
2954    pub const LOOP: BoxCode = BoxCode::new(*b"loop");
2955    /// OMA DRM Lyrics URI
2956    ///
2957    /// FourCC: `lrcu`
2958    ///
2959    /// Specification: _OMA DRM 2.1_
2960    pub const LRCU: BoxCode = BoxCode::new(*b"lrcu");
2961    /// Track loudness container
2962    ///
2963    /// FourCC: `ludt`
2964    ///
2965    /// Specification: _ISO_
2966    pub const LUDT: BoxCode = BoxCode::new(*b"ludt");
2967    /// LCEVC configuration
2968    ///
2969    /// FourCC: `lvcC`
2970    ///
2971    /// Specification: _NALu Video_
2972    ///
2973    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2974    pub const LVCC: BoxCode = BoxCode::new(*b"lvcC");
2975    /// MPEG-4 descriptors
2976    ///
2977    /// FourCC: `m4ds`
2978    ///
2979    /// Specification: _NALu Video_
2980    ///
2981    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2982    pub const M4DS: BoxCode = BoxCode::new(*b"m4ds");
2983    /// reserved for MPEG7Stream header
2984    ///
2985    /// FourCC: `m7hd`
2986    ///
2987    /// Specification: _MP4v2_
2988    pub const M7HD: BoxCode = BoxCode::new(*b"m7hd");
2989    /// MPEG-H Audio scene information
2990    ///
2991    /// FourCC: `maeI`
2992    ///
2993    /// Specification: _MPEG-H_
2994    ///
2995    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
2996    pub const MAEI: BoxCode = BoxCode::new(*b"maeI");
2997    /// MPEG-H Audio multi-stream signalling
2998    ///
2999    /// FourCC: `maeM`
3000    ///
3001    /// Specification: _MPEG-H_
3002    ///
3003    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3004    pub const MAEM: BoxCode = BoxCode::new(*b"maeM");
3005    /// Manufacturer name of the camera
3006    ///
3007    /// FourCC: `manu`
3008    ///
3009    /// Specification: _Apple_
3010    pub const MANU: BoxCode = BoxCode::new(*b"manu");
3011    /// Visual track matte for compositing
3012    ///
3013    /// FourCC: `matt`
3014    ///
3015    /// Specification: _QT_
3016    pub const MATT: BoxCode = BoxCode::new(*b"matt");
3017    /// MD5IntegrityBox
3018    ///
3019    /// FourCC: `md5i`
3020    ///
3021    /// Specification: _HEIF_
3022    pub const MD5I: BoxCode = BoxCode::new(*b"md5i");
3023    /// media data container
3024    ///
3025    /// FourCC: `mdat`
3026    ///
3027    /// Specification: _ISO_
3028    pub const MDAT: BoxCode = BoxCode::new(*b"mdat");
3029    /// mastering display colour volume
3030    ///
3031    /// FourCC: `mdcv`
3032    ///
3033    /// Specification: _ISO_
3034    ///
3035    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3036    pub const MDCV: BoxCode = BoxCode::new(*b"mdcv");
3037    /// media header, overall information about the media
3038    ///
3039    /// FourCC: `mdhd`
3040    ///
3041    /// Specification: _ISO_
3042    pub const MDHD: BoxCode = BoxCode::new(*b"mdhd");
3043    /// container for the media information in a track
3044    ///
3045    /// FourCC: `mdia`
3046    ///
3047    /// Specification: _ISO_
3048    pub const MDIA: BoxCode = BoxCode::new(*b"mdia");
3049    /// Mutable DRM information
3050    ///
3051    /// FourCC: `mdri`
3052    ///
3053    /// Specification: _OMA DRM 2.0_
3054    pub const MDRI: BoxCode = BoxCode::new(*b"mdri");
3055    /// additional metadata container
3056    ///
3057    /// FourCC: `meco`
3058    ///
3059    /// Specification: _ISO_
3060    pub const MECO: BoxCode = BoxCode::new(*b"meco");
3061    /// movie extends header box
3062    ///
3063    /// FourCC: `mehd`
3064    ///
3065    /// Specification: _ISO_
3066    pub const MEHD: BoxCode = BoxCode::new(*b"mehd");
3067    /// media offset
3068    ///
3069    /// FourCC: `meof`
3070    ///
3071    /// Specification: _OMAF_
3072    pub const MEOF: BoxCode = BoxCode::new(*b"meof");
3073    /// metabox relation
3074    ///
3075    /// FourCC: `mere`
3076    ///
3077    /// Specification: _ISO_
3078    pub const MERE: BoxCode = BoxCode::new(*b"mere");
3079    /// mesh box
3080    ///
3081    /// FourCC: `mesh`
3082    ///
3083    /// Specification: _OMAF_
3084    pub const MESH: BoxCode = BoxCode::new(*b"mesh");
3085    /// Metadata container
3086    ///
3087    /// FourCC: `meta`
3088    ///
3089    /// Specification: _ISO_
3090    pub const META: BoxCode = BoxCode::new(*b"meta");
3091    /// movie fragment header
3092    ///
3093    /// FourCC: `mfhd`
3094    ///
3095    /// Specification: _ISO_
3096    pub const MFHD: BoxCode = BoxCode::new(*b"mfhd");
3097    /// Movie fragment random access
3098    ///
3099    /// FourCC: `mfra`
3100    ///
3101    /// Specification: _ISO_
3102    pub const MFRA: BoxCode = BoxCode::new(*b"mfra");
3103    /// Movie fragment random access offset
3104    ///
3105    /// FourCC: `mfro`
3106    ///
3107    /// Specification: _ISO_
3108    pub const MFRO: BoxCode = BoxCode::new(*b"mfro");
3109    /// MPEG-H Audio Decoder Configuration
3110    ///
3111    /// FourCC: `mhaC`
3112    ///
3113    /// Specification: _MPEG-H_
3114    ///
3115    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3116    pub const MHAC: BoxCode = BoxCode::new(*b"mhaC");
3117    /// MPEG-H Audio dynamic range control and loudness
3118    ///
3119    /// FourCC: `mhaD`
3120    ///
3121    /// Specification: _MPEG-H_
3122    ///
3123    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3124    pub const MHAD: BoxCode = BoxCode::new(*b"mhaD");
3125    /// MPEG-H Audio profile and level compatibility set
3126    ///
3127    /// FourCC: `mhaP`
3128    ///
3129    /// Specification: _MPEG-H_
3130    ///
3131    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3132    pub const MHAP: BoxCode = BoxCode::new(*b"mhaP");
3133    /// media information container
3134    ///
3135    /// FourCC: `minf`
3136    ///
3137    /// Specification: _ISO_
3138    pub const MINF: BoxCode = BoxCode::new(*b"minf");
3139    /// The MinimizedImageBox provides a more compact representation of the MetaBox for a subset of use cases
3140    ///
3141    /// FourCC: `mini`
3142    ///
3143    /// Specification: _HEIF_
3144    pub const MINI: BoxCode = BoxCode::new(*b"mini");
3145    /// reserved for MPEG-J Stream header
3146    ///
3147    /// FourCC: `mjhd`
3148    ///
3149    /// Specification: _MP4v2_
3150    pub const MJHD: BoxCode = BoxCode::new(*b"mjhd");
3151    /// multimap video
3152    ///
3153    /// FourCC: `mmvi`
3154    ///
3155    /// Specification: _V3C-SYS_
3156    pub const MMVI: BoxCode = BoxCode::new(*b"mmvi");
3157    /// Model name of the camera
3158    ///
3159    /// FourCC: `modl`
3160    ///
3161    /// Specification: _Apple_
3162    pub const MODL: BoxCode = BoxCode::new(*b"modl");
3163    /// movie fragment
3164    ///
3165    /// FourCC: `moof`
3166    ///
3167    /// Specification: _ISO_
3168    pub const MOOF: BoxCode = BoxCode::new(*b"moof");
3169    /// container for all the meta-data
3170    ///
3171    /// FourCC: `moov`
3172    ///
3173    /// Specification: _ISO_
3174    pub const MOOV: BoxCode = BoxCode::new(*b"moov");
3175    /// mesh omnidirectional video
3176    ///
3177    /// FourCC: `movd`
3178    ///
3179    /// Specification: _OMAF_
3180    pub const MOVD: BoxCode = BoxCode::new(*b"movd");
3181    /// MVC sub track view box
3182    ///
3183    /// FourCC: `mstv`
3184    ///
3185    /// Specification: _NALu Video_
3186    pub const MSTV: BoxCode = BoxCode::new(*b"mstv");
3187    /// MVC configuration
3188    ///
3189    /// FourCC: `mvcC`
3190    ///
3191    /// Specification: _NALu Video_
3192    ///
3193    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3194    pub const MVCC: BoxCode = BoxCode::new(*b"mvcC");
3195    /// MVC priority assignment
3196    ///
3197    /// FourCC: `mvcP`
3198    ///
3199    /// Specification: _NALu Video_
3200    ///
3201    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3202    pub const MVCP: BoxCode = BoxCode::new(*b"mvcP");
3203    /// Multiview group
3204    ///
3205    /// FourCC: `mvcg`
3206    ///
3207    /// Specification: _NALu Video_
3208    pub const MVCG: BoxCode = BoxCode::new(*b"mvcg");
3209    /// Multiview Information
3210    ///
3211    /// FourCC: `mvci`
3212    ///
3213    /// Specification: _NALu Video_
3214    pub const MVCI: BoxCode = BoxCode::new(*b"mvci");
3215    /// MVCDConfigurationBox
3216    ///
3217    /// FourCC: `mvdC`
3218    ///
3219    /// Specification: _NALu Video_
3220    ///
3221    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3222    pub const MVDC: BoxCode = BoxCode::new(*b"mvdC");
3223    /// movie extends box
3224    ///
3225    /// FourCC: `mvex`
3226    ///
3227    /// Specification: _ISO_
3228    pub const MVEX: BoxCode = BoxCode::new(*b"mvex");
3229    /// movie header, overall declarations
3230    ///
3231    /// FourCC: `mvhd`
3232    ///
3233    /// Specification: _ISO_
3234    pub const MVHD: BoxCode = BoxCode::new(*b"mvhd");
3235    /// Multiview Relation Attribute
3236    ///
3237    /// FourCC: `mvra`
3238    ///
3239    /// Specification: _NALu Video_
3240    pub const MVRA: BoxCode = BoxCode::new(*b"mvra");
3241    /// Null media header, overall information (some tracks only)
3242    ///
3243    /// FourCC: `nmhd`
3244    ///
3245    /// Specification: _ISO_
3246    pub const NMHD: BoxCode = BoxCode::new(*b"nmhd");
3247    /// reserved for ObjectContentInfoStream header
3248    ///
3249    /// FourCC: `ochd`
3250    ///
3251    /// Specification: _MP4v2_
3252    pub const OCHD: BoxCode = BoxCode::new(*b"ochd");
3253    /// OMA DRM Access Unit Format
3254    ///
3255    /// FourCC: `odaf`
3256    ///
3257    /// Specification: _OMA DRM 2.0_
3258    pub const ODAF: BoxCode = BoxCode::new(*b"odaf");
3259    /// OMA DRM Content Object
3260    ///
3261    /// FourCC: `odda`
3262    ///
3263    /// Specification: _OMA DRM 2.0_
3264    pub const ODDA: BoxCode = BoxCode::new(*b"odda");
3265    /// reserved for ObjectDescriptorStream header
3266    ///
3267    /// FourCC: `odhd`
3268    ///
3269    /// Specification: _MP4v2_
3270    pub const ODHD: BoxCode = BoxCode::new(*b"odhd");
3271    /// OMA DRM Discrete Media Headers
3272    ///
3273    /// FourCC: `odhe`
3274    ///
3275    /// Specification: _OMA DRM 2.0_
3276    pub const ODHE: BoxCode = BoxCode::new(*b"odhe");
3277    /// OMA DRM Rights Object
3278    ///
3279    /// FourCC: `odrb`
3280    ///
3281    /// Specification: _OMA DRM 2.0_
3282    pub const ODRB: BoxCode = BoxCode::new(*b"odrb");
3283    /// OMA DRM Container
3284    ///
3285    /// FourCC: `odrm`
3286    ///
3287    /// Specification: _OMA DRM 2.0_
3288    pub const ODRM: BoxCode = BoxCode::new(*b"odrm");
3289    /// OMA DRM Transaction Tracking
3290    ///
3291    /// FourCC: `odtt`
3292    ///
3293    /// Specification: _OMA DRM 2.0_
3294    pub const ODTT: BoxCode = BoxCode::new(*b"odtt");
3295    /// OMA DRM Common headers
3296    ///
3297    /// FourCC: `ohdr`
3298    ///
3299    /// Specification: _OMA DRM 2.0_
3300    pub const OHDR: BoxCode = BoxCode::new(*b"ohdr");
3301    /// Orientation information
3302    ///
3303    /// FourCC: `orie`
3304    ///
3305    /// Specification: _3GPP_
3306    pub const ORIE: BoxCode = BoxCode::new(*b"orie");
3307    /// OMAF timed text configuration
3308    ///
3309    /// FourCC: `otcf`
3310    ///
3311    /// Specification: _OMAF_
3312    pub const OTCF: BoxCode = BoxCode::new(*b"otcf");
3313    /// Original file type
3314    ///
3315    /// FourCC: `otyp`
3316    ///
3317    /// Specification: _ISO_
3318    pub const OTYP: BoxCode = BoxCode::new(*b"otyp");
3319    /// overlay configuration
3320    ///
3321    /// FourCC: `ovly`
3322    ///
3323    /// Specification: _OMAF_
3324    pub const OVLY: BoxCode = BoxCode::new(*b"ovly");
3325    /// sample padding bits
3326    ///
3327    /// FourCC: `padb`
3328    ///
3329    /// Specification: _ISO_
3330    pub const PADB: BoxCode = BoxCode::new(*b"padb");
3331    /// Partition Entry
3332    ///
3333    /// FourCC: `paen`
3334    ///
3335    /// Specification: _ISO_
3336    pub const PAEN: BoxCode = BoxCode::new(*b"paen");
3337    /// Pixel aspect ratio
3338    ///
3339    /// FourCC: `pasp`
3340    ///
3341    /// Specification: _ISO_
3342    ///
3343    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3344    pub const PASP: BoxCode = BoxCode::new(*b"pasp");
3345    /// palette which maps a single component in index space to a multiple- component image
3346    ///
3347    /// FourCC: `pclr`
3348    ///
3349    /// Specification: _JPEG2000_
3350    pub const PCLR: BoxCode = BoxCode::new(*b"pclr");
3351    /// Uncompressed audio PCM configuration
3352    ///
3353    /// FourCC: `pcmC`
3354    ///
3355    /// Specification: _ISO-UNCA_
3356    ///
3357    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3358    pub const PCMC: BoxCode = BoxCode::new(*b"pcmC");
3359    /// Partial Data
3360    ///
3361    /// FourCC: `pdat`
3362    ///
3363    /// Specification: _ISO-Partial_
3364    pub const PDAT: BoxCode = BoxCode::new(*b"pdat");
3365    /// Parametric DRC coefficients
3366    ///
3367    /// FourCC: `pdc1`
3368    ///
3369    /// Specification: _DRC_
3370    ///
3371    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3372    pub const PDC1: BoxCode = BoxCode::new(*b"pdc1");
3373    /// Parametric DRC instructions
3374    ///
3375    /// FourCC: `pdi1`
3376    ///
3377    /// Specification: _DRC_
3378    ///
3379    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3380    pub const PDI1: BoxCode = BoxCode::new(*b"pdi1");
3381    /// Progressive download information
3382    ///
3383    /// FourCC: `pdin`
3384    ///
3385    /// Specification: _ISO_
3386    pub const PDIN: BoxCode = BoxCode::new(*b"pdin");
3387    /// Media performer name
3388    ///
3389    /// FourCC: `perf`
3390    ///
3391    /// Specification: _3GPP_
3392    pub const PERF: BoxCode = BoxCode::new(*b"perf");
3393    /// Partial File Header
3394    ///
3395    /// FourCC: `pfhd`
3396    ///
3397    /// Specification: _ISO-Partial_
3398    pub const PFHD: BoxCode = BoxCode::new(*b"pfhd");
3399    /// Partial File
3400    ///
3401    /// FourCC: `pfil`
3402    ///
3403    /// Specification: _ISO-Partial_
3404    pub const PFIL: BoxCode = BoxCode::new(*b"pfil");
3405    /// primary item reference
3406    ///
3407    /// FourCC: `pitm`
3408    ///
3409    /// Specification: _ISO_
3410    pub const PITM: BoxCode = BoxCode::new(*b"pitm");
3411    /// Partial Segment Location
3412    ///
3413    /// FourCC: `ploc`
3414    ///
3415    /// Specification: _ISO-Partial_
3416    pub const PLOC: BoxCode = BoxCode::new(*b"ploc");
3417    /// Preview container
3418    ///
3419    /// FourCC: `pnot`
3420    ///
3421    /// Specification: _QT_
3422    pub const PNOT: BoxCode = BoxCode::new(*b"pnot");
3423    /// projected omnidirectional video
3424    ///
3425    /// FourCC: `povd`
3426    ///
3427    /// Specification: _OMAF_
3428    pub const POVD: BoxCode = BoxCode::new(*b"povd");
3429    /// projection format
3430    ///
3431    /// FourCC: `prfr`
3432    ///
3433    /// Specification: _OMAF_
3434    pub const PRFR: BoxCode = BoxCode::new(*b"prfr");
3435    /// Producer reference time
3436    ///
3437    /// FourCC: `prft`
3438    ///
3439    /// Specification: _ISO_
3440    pub const PRFT: BoxCode = BoxCode::new(*b"prft");
3441    /// Production metadata box
3442    ///
3443    /// FourCC: `prmd`
3444    ///
3445    /// Specification: _Youtube_
3446    pub const PRMD: BoxCode = BoxCode::new(*b"prmd");
3447    /// Production metadata reference box
3448    ///
3449    /// FourCC: `prmr`
3450    ///
3451    /// Specification: _Youtube_
3452    ///
3453    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3454    pub const PRMR: BoxCode = BoxCode::new(*b"prmr");
3455    /// Partial Segment
3456    ///
3457    /// FourCC: `pseg`
3458    ///
3459    /// Specification: _ISO-Partial_
3460    pub const PSEG: BoxCode = BoxCode::new(*b"pseg");
3461    /// Partial Segment Header
3462    ///
3463    /// FourCC: `pshd`
3464    ///
3465    /// Specification: _ISO-Partial_
3466    pub const PSHD: BoxCode = BoxCode::new(*b"pshd");
3467    /// Protection system specific header
3468    ///
3469    /// FourCC: `pssh`
3470    ///
3471    /// Specification: _ISO Common Encryption_
3472    pub const PSSH: BoxCode = BoxCode::new(*b"pssh");
3473    /// Partial Top Level Entry
3474    ///
3475    /// FourCC: `ptle`
3476    ///
3477    /// Specification: _ISO-Partial_
3478    pub const PTLE: BoxCode = BoxCode::new(*b"ptle");
3479    /// Layer quality assignments
3480    ///
3481    /// FourCC: `qlif`
3482    ///
3483    /// Specification: _NALu Video_
3484    ///
3485    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3486    pub const QLIF: BoxCode = BoxCode::new(*b"qlif");
3487    /// Name of the tape reel
3488    ///
3489    /// FourCC: `reel`
3490    ///
3491    /// Specification: _Apple_
3492    pub const REEL: BoxCode = BoxCode::new(*b"reel");
3493    /// grid resolution
3494    ///
3495    /// FourCC: `res `
3496    ///
3497    /// Specification: _JPEG2000_
3498    pub const RES: BoxCode = BoxCode::new(*b"res ");
3499    /// grid resolution at which the image was captured
3500    ///
3501    /// FourCC: `resc`
3502    ///
3503    /// Specification: _JPEG2000_
3504    pub const RESC: BoxCode = BoxCode::new(*b"resc");
3505    /// default grid resolution at which the image should be displayed
3506    ///
3507    /// FourCC: `resd`
3508    ///
3509    /// Specification: _JPEG2000_
3510    pub const RESD: BoxCode = BoxCode::new(*b"resd");
3511    /// restricted scheme information box
3512    ///
3513    /// FourCC: `rinf`
3514    ///
3515    /// Specification: _ISO_
3516    pub const RINF: BoxCode = BoxCode::new(*b"rinf");
3517    /// sphere region configuration
3518    ///
3519    /// FourCC: `rosc`
3520    ///
3521    /// Specification: _OMAF_
3522    pub const ROSC: BoxCode = BoxCode::new(*b"rosc");
3523    /// rotation box
3524    ///
3525    /// FourCC: `rotn`
3526    ///
3527    /// Specification: _OMAF_
3528    pub const ROTN: BoxCode = BoxCode::new(*b"rotn");
3529    /// SVC rect region box
3530    ///
3531    /// FourCC: `rrgn`
3532    ///
3533    /// Specification: _NALu Video_
3534    pub const RRGN: BoxCode = BoxCode::new(*b"rrgn");
3535    /// Redundant Sample Original Timing
3536    ///
3537    /// FourCC: `rsot`
3538    ///
3539    /// Specification: _ISO_
3540    pub const RSOT: BoxCode = BoxCode::new(*b"rsot");
3541    /// Media rating
3542    ///
3543    /// FourCC: `rtng`
3544    ///
3545    /// Specification: _3GPP_
3546    pub const RTNG: BoxCode = BoxCode::new(*b"rtng");
3547    /// recommended viewport information
3548    ///
3549    /// FourCC: `rvif`
3550    ///
3551    /// Specification: _OMAF_
3552    pub const RVIF: BoxCode = BoxCode::new(*b"rvif");
3553    /// region-wise packing
3554    ///
3555    /// FourCC: `rwpk`
3556    ///
3557    /// Specification: _OMAF_
3558    pub const RWPK: BoxCode = BoxCode::new(*b"rwpk");
3559    /// Sample auxiliary information offsets
3560    ///
3561    /// FourCC: `saio`
3562    ///
3563    /// Specification: _ISO_
3564    pub const SAIO: BoxCode = BoxCode::new(*b"saio");
3565    /// Sample auxiliary information sizes
3566    ///
3567    /// FourCC: `saiz`
3568    ///
3569    /// Specification: _ISO_
3570    pub const SAIZ: BoxCode = BoxCode::new(*b"saiz");
3571    /// Sample to Group box
3572    ///
3573    /// FourCC: `sbgp`
3574    ///
3575    /// Specification: _ISO_
3576    pub const SBGP: BoxCode = BoxCode::new(*b"sbgp");
3577    /// Sensor Bad Pixels Map
3578    ///
3579    /// FourCC: `sbpm`
3580    ///
3581    /// Specification: _UNCV_
3582    ///
3583    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3584    pub const SBPM: BoxCode = BoxCode::new(*b"sbpm");
3585    /// Name of the scene for which the clip was shot
3586    ///
3587    /// FourCC: `scen`
3588    ///
3589    /// Specification: _Apple_
3590    pub const SCEN: BoxCode = BoxCode::new(*b"scen");
3591    /// scheme information box
3592    ///
3593    /// FourCC: `schi`
3594    ///
3595    /// Specification: _ISO_
3596    pub const SCHI: BoxCode = BoxCode::new(*b"schi");
3597    /// scheme type box
3598    ///
3599    /// FourCC: `schm`
3600    ///
3601    /// Specification: _ISO_
3602    pub const SCHM: BoxCode = BoxCode::new(*b"schm");
3603    /// Scramble scheme information
3604    ///
3605    /// FourCC: `scrb`
3606    ///
3607    /// Specification: _ISO_
3608    ///
3609    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3610    pub const SCRB: BoxCode = BoxCode::new(*b"scrb");
3611    /// Sample dependency
3612    ///
3613    /// FourCC: `sdep`
3614    ///
3615    /// Specification: _NALu Video_
3616    pub const SDEP: BoxCode = BoxCode::new(*b"sdep");
3617    /// reserved for SceneDescriptionStream header
3618    ///
3619    /// FourCC: `sdhd`
3620    ///
3621    /// Specification: _MP4v2_
3622    pub const SDHD: BoxCode = BoxCode::new(*b"sdhd");
3623    /// SDP information
3624    ///
3625    /// FourCC: `sdp `
3626    ///
3627    /// Specification: _ISO_
3628    pub const SDP: BoxCode = BoxCode::new(*b"sdp ");
3629    /// Independent and Disposable Samples Box
3630    ///
3631    /// FourCC: `sdtp`
3632    ///
3633    /// Specification: _ISO_
3634    pub const SDTP: BoxCode = BoxCode::new(*b"sdtp");
3635    /// SD Profile Box
3636    ///
3637    /// FourCC: `sdvp`
3638    ///
3639    /// Specification: _SDV_
3640    pub const SDVP: BoxCode = BoxCode::new(*b"sdvp");
3641    /// file delivery session group
3642    ///
3643    /// FourCC: `segr`
3644    ///
3645    /// Specification: _ISO_
3646    pub const SEGR: BoxCode = BoxCode::new(*b"segr");
3647    /// Scalability information
3648    ///
3649    /// FourCC: `seib`
3650    ///
3651    /// Specification: _NALu Video_
3652    ///
3653    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3654    pub const SEIB: BoxCode = BoxCode::new(*b"seib");
3655    /// SEI information box
3656    ///
3657    /// FourCC: `seii`
3658    ///
3659    /// Specification: _NALu Video_
3660    pub const SEII: BoxCode = BoxCode::new(*b"seii");
3661    /// Sample specific encryption data
3662    ///
3663    /// FourCC: `senc`
3664    ///
3665    /// Specification: _ISO Common Encryption_
3666    pub const SENC: BoxCode = BoxCode::new(*b"senc");
3667    /// Sample group definition box
3668    ///
3669    /// FourCC: `sgpd`
3670    ///
3671    /// Specification: _ISO_
3672    pub const SGPD: BoxCode = BoxCode::new(*b"sgpd");
3673    /// Name that identifies the shot
3674    ///
3675    /// FourCC: `shot`
3676    ///
3677    /// Specification: _Apple_
3678    pub const SHOT: BoxCode = BoxCode::new(*b"shot");
3679    /// Segment Index Box
3680    ///
3681    /// FourCC: `sidx`
3682    ///
3683    /// Specification: _ISO_
3684    pub const SIDX: BoxCode = BoxCode::new(*b"sidx");
3685    /// Scheme ID list Box
3686    ///
3687    /// FourCC: `silb`
3688    ///
3689    /// Specification: _Event Message_
3690    ///
3691    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3692    pub const SILB: BoxCode = BoxCode::new(*b"silb");
3693    /// protection scheme information box
3694    ///
3695    /// FourCC: `sinf`
3696    ///
3697    /// Specification: _ISO_
3698    pub const SINF: BoxCode = BoxCode::new(*b"sinf");
3699    /// free space
3700    ///
3701    /// FourCC: `skip`
3702    ///
3703    /// Specification: _ISO_
3704    pub const SKIP: BoxCode = BoxCode::new(*b"skip");
3705    /// Serial number of the camera
3706    ///
3707    /// FourCC: `slno`
3708    ///
3709    /// Specification: _Apple_
3710    pub const SLNO: BoxCode = BoxCode::new(*b"slno");
3711    /// sound media header, overall information (sound track only)
3712    ///
3713    /// FourCC: `smhd`
3714    ///
3715    /// Specification: _ISO_
3716    pub const SMHD: BoxCode = BoxCode::new(*b"smhd");
3717    /// Sensor Non-Uniformity Correction
3718    ///
3719    /// FourCC: `snuc`
3720    ///
3721    /// Specification: _UNCV_
3722    ///
3723    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3724    pub const SNUC: BoxCode = BoxCode::new(*b"snuc");
3725    /// Sample packing information box
3726    ///
3727    /// FourCC: `spki`
3728    ///
3729    /// Specification: _ISO_
3730    pub const SPKI: BoxCode = BoxCode::new(*b"spki");
3731    /// Polarization Pattern Definition
3732    ///
3733    /// FourCC: `splz`
3734    ///
3735    /// Specification: _UNCV_
3736    ///
3737    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3738    pub const SPLZ: BoxCode = BoxCode::new(*b"splz");
3739    /// sub-picture region
3740    ///
3741    /// FourCC: `sprg`
3742    ///
3743    /// Specification: _OMAF_
3744    pub const SPRG: BoxCode = BoxCode::new(*b"sprg");
3745    /// Sampling rate
3746    ///
3747    /// FourCC: `srat`
3748    ///
3749    /// Specification: _ISO_
3750    ///
3751    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3752    pub const SRAT: BoxCode = BoxCode::new(*b"srat");
3753    /// System Renewability Message
3754    ///
3755    /// FourCC: `srmb`
3756    ///
3757    /// Specification: _DVB_
3758    pub const SRMB: BoxCode = BoxCode::new(*b"srmb");
3759    /// System Renewability Message container
3760    ///
3761    /// FourCC: `srmc`
3762    ///
3763    /// Specification: _DVB_
3764    pub const SRMC: BoxCode = BoxCode::new(*b"srmc");
3765    /// STRP Process
3766    ///
3767    /// FourCC: `srpp`
3768    ///
3769    /// Specification: _ISO_
3770    pub const SRPP: BoxCode = BoxCode::new(*b"srpp");
3771    /// sphere region quality ranking
3772    ///
3773    /// FourCC: `srqr`
3774    ///
3775    /// Specification: _OMAF_
3776    pub const SRQR: BoxCode = BoxCode::new(*b"srqr");
3777    /// Sub-sample index
3778    ///
3779    /// FourCC: `ssix`
3780    ///
3781    /// Specification: _ISO_
3782    pub const SSIX: BoxCode = BoxCode::new(*b"ssix");
3783    /// Sub-sample Reference Table Box
3784    ///
3785    /// FourCC: `ssrt`
3786    ///
3787    /// Specification: _ISO_
3788    pub const SSRT: BoxCode = BoxCode::new(*b"ssrt");
3789    /// SVC sub track layer box
3790    ///
3791    /// FourCC: `sstl`
3792    ///
3793    /// Specification: _NALu Video_
3794    pub const SSTL: BoxCode = BoxCode::new(*b"sstl");
3795    /// sample table box, container for the time/space map
3796    ///
3797    /// FourCC: `stbl`
3798    ///
3799    /// Specification: _ISO_
3800    pub const STBL: BoxCode = BoxCode::new(*b"stbl");
3801    /// chunk offset, partial data-offset information
3802    ///
3803    /// FourCC: `stco`
3804    ///
3805    /// Specification: _ISO_
3806    pub const STCO: BoxCode = BoxCode::new(*b"stco");
3807    /// sample degradation priority
3808    ///
3809    /// FourCC: `stdp`
3810    ///
3811    /// Specification: _ISO_
3812    pub const STDP: BoxCode = BoxCode::new(*b"stdp");
3813    /// Subtitle Media Header Box
3814    ///
3815    /// FourCC: `sthd`
3816    ///
3817    /// Specification: _ISO_
3818    pub const STHD: BoxCode = BoxCode::new(*b"sthd");
3819    /// MVC sub track multiview group box
3820    ///
3821    /// FourCC: `stmg`
3822    ///
3823    /// Specification: _NALu Video_
3824    pub const STMG: BoxCode = BoxCode::new(*b"stmg");
3825    /// Sub-track definition
3826    ///
3827    /// FourCC: `strd`
3828    ///
3829    /// Specification: _ISO_
3830    pub const STRD: BoxCode = BoxCode::new(*b"strd");
3831    /// Sub-track information
3832    ///
3833    /// FourCC: `stri`
3834    ///
3835    /// Specification: _ISO_
3836    pub const STRI: BoxCode = BoxCode::new(*b"stri");
3837    /// Sub track information
3838    ///
3839    /// FourCC: `strk`
3840    ///
3841    /// Specification: _ISO_
3842    pub const STRK: BoxCode = BoxCode::new(*b"strk");
3843    /// sample-to-chunk, partial data-offset information
3844    ///
3845    /// FourCC: `stsc`
3846    ///
3847    /// Specification: _ISO_
3848    pub const STSC: BoxCode = BoxCode::new(*b"stsc");
3849    /// sample descriptions (codec types, initialization etc.)
3850    ///
3851    /// FourCC: `stsd`
3852    ///
3853    /// Specification: _ISO_
3854    pub const STSD: BoxCode = BoxCode::new(*b"stsd");
3855    /// Sub-track sample grouping
3856    ///
3857    /// FourCC: `stsg`
3858    ///
3859    /// Specification: _ISO_
3860    pub const STSG: BoxCode = BoxCode::new(*b"stsg");
3861    /// shadow sync sample table
3862    ///
3863    /// FourCC: `stsh`
3864    ///
3865    /// Specification: _ISO_
3866    pub const STSH: BoxCode = BoxCode::new(*b"stsh");
3867    /// sync sample table (random access points)
3868    ///
3869    /// FourCC: `stss`
3870    ///
3871    /// Specification: _ISO_
3872    pub const STSS: BoxCode = BoxCode::new(*b"stss");
3873    /// sample sizes (framing)
3874    ///
3875    /// FourCC: `stsz`
3876    ///
3877    /// Specification: _ISO_
3878    pub const STSZ: BoxCode = BoxCode::new(*b"stsz");
3879    /// Sub track tier box
3880    ///
3881    /// FourCC: `stti`
3882    ///
3883    /// Specification: _NALu Video_
3884    pub const STTI: BoxCode = BoxCode::new(*b"stti");
3885    /// (decoding) time-to-sample
3886    ///
3887    /// FourCC: `stts`
3888    ///
3889    /// Specification: _ISO_
3890    pub const STTS: BoxCode = BoxCode::new(*b"stts");
3891    /// Stereo Video Box
3892    ///
3893    /// FourCC: `stvi`
3894    ///
3895    /// Specification: _ISO_
3896    pub const STVI: BoxCode = BoxCode::new(*b"stvi");
3897    /// Segment Type Box
3898    ///
3899    /// FourCC: `styp`
3900    ///
3901    /// Specification: _ISO_
3902    pub const STYP: BoxCode = BoxCode::new(*b"styp");
3903    /// compact sample sizes (framing)
3904    ///
3905    /// FourCC: `stz2`
3906    ///
3907    /// Specification: _ISO_
3908    pub const STZ2: BoxCode = BoxCode::new(*b"stz2");
3909    /// Sub-sample information
3910    ///
3911    /// FourCC: `subs`
3912    ///
3913    /// Specification: _ISO_
3914    pub const SUBS: BoxCode = BoxCode::new(*b"subs");
3915    /// signer identity information
3916    ///
3917    /// FourCC: `suep`
3918    ///
3919    /// Specification: _ONVIF_
3920    pub const SUEP: BoxCode = BoxCode::new(*b"suep");
3921    /// supplemental surveillance meta information
3922    ///
3923    /// FourCC: `sumi`
3924    ///
3925    /// Specification: _MPEG-VSAF_
3926    pub const SUMI: BoxCode = BoxCode::new(*b"sumi");
3927    /// Source URL
3928    ///
3929    /// FourCC: `surl`
3930    ///
3931    /// Specification: _ISO-Partial_
3932    pub const SURL: BoxCode = BoxCode::new(*b"surl");
3933    /// SVC configuration
3934    ///
3935    /// FourCC: `svcC`
3936    ///
3937    /// Specification: _NALu Video_
3938    ///
3939    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3940    pub const SVCC: BoxCode = BoxCode::new(*b"svcC");
3941    /// SVC priority assignments
3942    ///
3943    /// FourCC: `svcP`
3944    ///
3945    /// Specification: _NALu Video_
3946    ///
3947    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3948    pub const SVCP: BoxCode = BoxCode::new(*b"svcP");
3949    /// SVC dependency range
3950    ///
3951    /// FourCC: `svdr`
3952    ///
3953    /// Specification: _NALu Video_
3954    pub const SVDR: BoxCode = BoxCode::new(*b"svdr");
3955    /// Initial parameter sets box for tiers
3956    ///
3957    /// FourCC: `svip`
3958    ///
3959    /// Specification: _NALu Video_
3960    pub const SVIP: BoxCode = BoxCode::new(*b"svip");
3961    /// SVC information configuration
3962    ///
3963    /// FourCC: `svmC`
3964    ///
3965    /// Specification: _NALu Video_
3966    ///
3967    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
3968    pub const SVMC: BoxCode = BoxCode::new(*b"svmC");
3969    /// Priority range
3970    ///
3971    /// FourCC: `svpr`
3972    ///
3973    /// Specification: _NALu Video_
3974    pub const SVPR: BoxCode = BoxCode::new(*b"svpr");
3975    /// Name and version number of the software that generated this movie
3976    ///
3977    /// FourCC: `swre`
3978    ///
3979    /// Specification: _Apple_
3980    pub const SWRE: BoxCode = BoxCode::new(*b"swre");
3981    /// Multiview Group Relation
3982    ///
3983    /// FourCC: `swtc`
3984    ///
3985    /// Specification: _NALu Video_
3986    pub const SWTC: BoxCode = BoxCode::new(*b"swtc");
3987    /// Track Encryption
3988    ///
3989    /// FourCC: `tenc`
3990    ///
3991    /// Specification: _ISO Common Encryption_
3992    pub const TENC: BoxCode = BoxCode::new(*b"tenc");
3993    /// Track fragment adjustment box
3994    ///
3995    /// FourCC: `tfad`
3996    ///
3997    /// Specification: _3GPP_
3998    pub const TFAD: BoxCode = BoxCode::new(*b"tfad");
3999    /// Track fragment decode time
4000    ///
4001    /// FourCC: `tfdt`
4002    ///
4003    /// Specification: _ISO_
4004    pub const TFDT: BoxCode = BoxCode::new(*b"tfdt");
4005    /// Track fragment header
4006    ///
4007    /// FourCC: `tfhd`
4008    ///
4009    /// Specification: _ISO_
4010    pub const TFHD: BoxCode = BoxCode::new(*b"tfhd");
4011    /// Track fragment media adjustment box
4012    ///
4013    /// FourCC: `tfma`
4014    ///
4015    /// Specification: _3GPP_
4016    pub const TFMA: BoxCode = BoxCode::new(*b"tfma");
4017    /// Track fragment radom access
4018    ///
4019    /// FourCC: `tfra`
4020    ///
4021    /// Specification: _ISO_
4022    pub const TFRA: BoxCode = BoxCode::new(*b"tfra");
4023    /// Thumbnail image of the media
4024    ///
4025    /// FourCC: `thmb`
4026    ///
4027    /// Specification: _3GPP_
4028    pub const THMB: BoxCode = BoxCode::new(*b"thmb");
4029    /// Tier Bit rate
4030    ///
4031    /// FourCC: `tibr`
4032    ///
4033    /// Specification: _NALu Video_
4034    pub const TIBR: BoxCode = BoxCode::new(*b"tibr");
4035    /// Tier Information
4036    ///
4037    /// FourCC: `tiri`
4038    ///
4039    /// Specification: _NALu Video_
4040    pub const TIRI: BoxCode = BoxCode::new(*b"tiri");
4041    /// Media title
4042    ///
4043    /// FourCC: `titl`
4044    ///
4045    /// Specification: _3GPP_
4046    pub const TITL: BoxCode = BoxCode::new(*b"titl");
4047    /// Track header, overall information about the track
4048    ///
4049    /// FourCC: `tkhd`
4050    ///
4051    /// Specification: _ISO_
4052    pub const TKHD: BoxCode = BoxCode::new(*b"tkhd");
4053    /// Track loudness base
4054    ///
4055    /// FourCC: `tlou`
4056    ///
4057    /// Specification: _ISO_
4058    pub const TLOU: BoxCode = BoxCode::new(*b"tlou");
4059    /// Track fragment
4060    ///
4061    /// FourCC: `traf`
4062    ///
4063    /// Specification: _ISO_
4064    pub const TRAF: BoxCode = BoxCode::new(*b"traf");
4065    /// container for an individual track or stream
4066    ///
4067    /// FourCC: `trak`
4068    ///
4069    /// Specification: _ISO_
4070    pub const TRAK: BoxCode = BoxCode::new(*b"trak");
4071    /// SVC lightweight transcoding
4072    ///
4073    /// FourCC: `tran`
4074    ///
4075    /// Specification: _NALu Video_
4076    pub const TRAN: BoxCode = BoxCode::new(*b"tran");
4077    /// track reference container
4078    ///
4079    /// FourCC: `tref`
4080    ///
4081    /// Specification: _ISO_
4082    pub const TREF: BoxCode = BoxCode::new(*b"tref");
4083    /// track extension properties
4084    ///
4085    /// FourCC: `trep`
4086    ///
4087    /// Specification: _ISO_
4088    pub const TREP: BoxCode = BoxCode::new(*b"trep");
4089    /// track extends defaults
4090    ///
4091    /// FourCC: `trex`
4092    ///
4093    /// Specification: _ISO_
4094    pub const TREX: BoxCode = BoxCode::new(*b"trex");
4095    /// Track grouping information
4096    ///
4097    /// FourCC: `trgr`
4098    ///
4099    /// Specification: _ISO_
4100    pub const TRGR: BoxCode = BoxCode::new(*b"trgr");
4101    /// Facilitates random access and trick play modes
4102    ///
4103    /// FourCC: `trik`
4104    ///
4105    /// Specification: _DECE_
4106    pub const TRIK: BoxCode = BoxCode::new(*b"trik");
4107    /// track fragment run
4108    ///
4109    /// FourCC: `trun`
4110    ///
4111    /// Specification: _ISO_
4112    pub const TRUN: BoxCode = BoxCode::new(*b"trun");
4113    /// Track selection
4114    ///
4115    /// FourCC: `tsel`
4116    ///
4117    /// Specification: _ISO_
4118    pub const TSEL: BoxCode = BoxCode::new(*b"tsel");
4119    /// TileSubTrackGroupBox
4120    ///
4121    /// FourCC: `tstb`
4122    ///
4123    /// Specification: _NALu Video_
4124    pub const TSTB: BoxCode = BoxCode::new(*b"tstb");
4125    /// track type and compatibility
4126    ///
4127    /// FourCC: `ttyp`
4128    ///
4129    /// Specification: _ISO_
4130    pub const TTYP: BoxCode = BoxCode::new(*b"ttyp");
4131    /// Text stream configuration
4132    ///
4133    /// FourCC: `txtC`
4134    ///
4135    /// Specification: _ISO_
4136    ///
4137    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4138    pub const TXTC: BoxCode = BoxCode::new(*b"txtC");
4139    /// type and-combination
4140    ///
4141    /// FourCC: `tyco`
4142    ///
4143    /// Specification: _ISO_
4144    pub const TYCO: BoxCode = BoxCode::new(*b"tyco");
4145    /// Basic DRC coefficients
4146    ///
4147    /// FourCC: `udc1`
4148    ///
4149    /// Specification: _DRC_
4150    ///
4151    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4152    pub const UDC1: BoxCode = BoxCode::new(*b"udc1");
4153    /// Unified DRC coefficients
4154    ///
4155    /// FourCC: `udc2`
4156    ///
4157    /// Specification: _DRC_
4158    ///
4159    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4160    pub const UDC2: BoxCode = BoxCode::new(*b"udc2");
4161    /// Unified DRC configuration extension
4162    ///
4163    /// FourCC: `udex`
4164    ///
4165    /// Specification: _DRC_
4166    ///
4167    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4168    pub const UDEX: BoxCode = BoxCode::new(*b"udex");
4169    /// Basic DRC instructions
4170    ///
4171    /// FourCC: `udi1`
4172    ///
4173    /// Specification: _DRC_
4174    ///
4175    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4176    pub const UDI1: BoxCode = BoxCode::new(*b"udi1");
4177    /// Unified DRC instructions
4178    ///
4179    /// FourCC: `udi2`
4180    ///
4181    /// Specification: _DRC_
4182    ///
4183    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4184    pub const UDI2: BoxCode = BoxCode::new(*b"udi2");
4185    /// user-data
4186    ///
4187    /// FourCC: `udta`
4188    ///
4189    /// Specification: _ISO_
4190    pub const UDTA: BoxCode = BoxCode::new(*b"udta");
4191    /// Equalization coefficients
4192    ///
4193    /// FourCC: `ueqc`
4194    ///
4195    /// Specification: _DRC_
4196    ///
4197    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4198    pub const UEQC: BoxCode = BoxCode::new(*b"ueqc");
4199    /// Equalization instructions
4200    ///
4201    /// FourCC: `ueqi`
4202    ///
4203    /// Specification: _DRC_
4204    ///
4205    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4206    pub const UEQI: BoxCode = BoxCode::new(*b"ueqi");
4207    /// a tool by which a vendor may provide access to additional information associated with a UUID
4208    ///
4209    /// FourCC: `uinf`
4210    ///
4211    /// Specification: _JPEG2000_
4212    pub const UINF: BoxCode = BoxCode::new(*b"uinf");
4213    /// a list of UUID’s
4214    ///
4215    /// FourCC: `ulst`
4216    ///
4217    /// Specification: _JPEG2000_
4218    pub const ULST: BoxCode = BoxCode::new(*b"ulst");
4219    /// Uncompressed Frame Configuration
4220    ///
4221    /// FourCC: `uncC`
4222    ///
4223    /// Specification: _UNCV_
4224    ///
4225    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4226    pub const UNCC: BoxCode = BoxCode::new(*b"uncC");
4227    /// User 'star' rating of the media
4228    ///
4229    /// FourCC: `urat`
4230    ///
4231    /// Specification: _3GPP_
4232    pub const URAT: BoxCode = BoxCode::new(*b"urat");
4233    /// URI Information
4234    ///
4235    /// FourCC: `uriI`
4236    ///
4237    /// Specification: _ISO_
4238    ///
4239    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4240    pub const URII: BoxCode = BoxCode::new(*b"uriI");
4241    /// a URL
4242    ///
4243    /// FourCC: `url `
4244    ///
4245    /// Specification: _JPEG2000_
4246    pub const URL: BoxCode = BoxCode::new(*b"url ");
4247    /// user-extension box
4248    ///
4249    /// FourCC: `uuid`
4250    ///
4251    /// Specification: _ISO_
4252    pub const UUID: BoxCode = BoxCode::new(*b"uuid");
4253    /// V3C Configuration
4254    ///
4255    /// FourCC: `v3cC`
4256    ///
4257    /// Specification: _V3C-SYS_
4258    ///
4259    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4260    pub const V3CC: BoxCode = BoxCode::new(*b"v3cC");
4261    /// V3C spatial region collection
4262    ///
4263    /// FourCC: `v3sc`
4264    ///
4265    /// Specification: _V3C-SYS_
4266    pub const V3SC: BoxCode = BoxCode::new(*b"v3sc");
4267    /// V3C Atlas Tile Configuration
4268    ///
4269    /// FourCC: `v3tC`
4270    ///
4271    /// Specification: _V3C-SYS_
4272    ///
4273    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4274    pub const V3TC: BoxCode = BoxCode::new(*b"v3tC");
4275    /// Video Extended Usage
4276    ///
4277    /// FourCC: `vexu`
4278    ///
4279    /// Specification: _Apple_
4280    ///
4281    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4282    pub const VEXU: BoxCode = BoxCode::new(*b"vexu");
4283    /// View priority Box
4284    ///
4285    /// FourCC: `vipr`
4286    ///
4287    /// Specification: _NALu Video_
4288    pub const VIPR: BoxCode = BoxCode::new(*b"vipr");
4289    /// WebVTT Source Label
4290    ///
4291    /// FourCC: `vlab`
4292    ///
4293    /// Specification: _ISO-Text_
4294    ///
4295    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4296    pub const VLAB: BoxCode = BoxCode::new(*b"vlab");
4297    /// video media header, overall information (video track only)
4298    ///
4299    /// FourCC: `vmhd`
4300    ///
4301    /// Specification: _ISO_
4302    pub const VMHD: BoxCode = BoxCode::new(*b"vmhd");
4303    /// Volumetric media bounding box
4304    ///
4305    /// FourCC: `vpbb`
4306    ///
4307    /// Specification: _V3C-SYS_
4308    pub const VPBB: BoxCode = BoxCode::new(*b"vpbb");
4309    /// VP9 Codec Configuration
4310    ///
4311    /// FourCC: `vpcC`
4312    ///
4313    /// Specification: _VPxx_
4314    ///
4315    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4316    pub const VPCC: BoxCode = BoxCode::new(*b"vpcC");
4317    /// View scalability information
4318    ///
4319    /// FourCC: `vsib`
4320    ///
4321    /// Specification: _NALu Video_
4322    ///
4323    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4324    pub const VSIB: BoxCode = BoxCode::new(*b"vsib");
4325    /// viewing space
4326    ///
4327    /// FourCC: `vssn`
4328    ///
4329    /// Specification: _OMAF_
4330    pub const VSSN: BoxCode = BoxCode::new(*b"vssn");
4331    /// WebVTTConfigurationBox
4332    ///
4333    /// FourCC: `vttC`
4334    ///
4335    /// Specification: _ISO-Text_
4336    ///
4337    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4338    pub const VTTC: BoxCode = BoxCode::new(*b"vttC");
4339    /// V3C unit header
4340    ///
4341    /// FourCC: `vunt`
4342    ///
4343    /// Specification: _V3C-SYS_
4344    pub const VUNT: BoxCode = BoxCode::new(*b"vunt");
4345    /// VVC video configuration
4346    ///
4347    /// FourCC: `vvcC`
4348    ///
4349    /// Specification: _NALu Video_
4350    ///
4351    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4352    pub const VVCC: BoxCode = BoxCode::new(*b"vvcC");
4353    /// volumetric visual media header
4354    ///
4355    /// FourCC: `vvhd`
4356    ///
4357    /// Specification: _ISO_
4358    pub const VVHD: BoxCode = BoxCode::new(*b"vvhd");
4359    /// VVC Network Abstraction Layer unit configuration
4360    ///
4361    /// FourCC: `vvnC`
4362    ///
4363    /// Specification: _NALu Video_
4364    ///
4365    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4366    pub const VVNC: BoxCode = BoxCode::new(*b"vvnC");
4367    /// Multiview Scene Information
4368    ///
4369    /// FourCC: `vwdi`
4370    ///
4371    /// Specification: _NALu Video_
4372    pub const VWDI: BoxCode = BoxCode::new(*b"vwdi");
4373    /// View identifier
4374    ///
4375    /// FourCC: `vwid`
4376    ///
4377    /// Specification: _NALu Video_
4378    ///
4379    /// This box appears inside sample entries. Use [`sample_entry_box_handler`] to look up the handler type.
4380    pub const VWID: BoxCode = BoxCode::new(*b"vwid");
4381    /// Expansion space reservation
4382    ///
4383    /// FourCC: `wide`
4384    ///
4385    /// Specification: _QT_
4386    pub const WIDE: BoxCode = BoxCode::new(*b"wide");
4387    /// segment position in the watermark pattern
4388    ///
4389    /// FourCC: `wmpi`
4390    ///
4391    /// Specification: _DASH-IF watermarking_
4392    pub const WMPI: BoxCode = BoxCode::new(*b"wmpi");
4393    /// a tool by which vendors can add XML formatted information
4394    ///
4395    /// FourCC: `xml `
4396    ///
4397    /// Specification: _JPEG2000_
4398    pub const XML: BoxCode = BoxCode::new(*b"xml ");
4399    /// Year when media was recorded
4400    ///
4401    /// FourCC: `yrrc`
4402    ///
4403    /// Specification: _3GPP_
4404    pub const YRRC: BoxCode = BoxCode::new(*b"yrrc");
4405}
4406impl BoxCode {
4407    /// Return a human-readable description for this box code, if one is known.
4408    pub fn description(&self) -> Option<&'static str> {
4409        match *self {
4410            BoxCode::COMPRESSED_MOF => Some("Compressed movie fragment"),
4411            BoxCode::COMPRESSED_MOV => Some("Compressed movie"),
4412            BoxCode::COMPRESSED_SIX => Some("Compressed segment index"),
4413            BoxCode::COMPRESSED_SSX => Some("Compressed subsegment index"),
4414            BoxCode::TWO_DQR => Some("2D region quality ranking"),
4415            BoxCode::TWO_DSS => Some("spatial relationship 2D source"),
4416            BoxCode::THREE_DPR => Some("MVDDepthResolutionBox"),
4417            BoxCode::THREE_SIB => Some("MVD Scalability Information SEI Message Box"),
4418            BoxCode::SIX_VPC => Some("Viewport Configuration"),
4419            BoxCode::EXIF => Some("Exif Metadata"),
4420            BoxCode::ID32 => Some("ID3 version 2 container"),
4421            BoxCode::JXL => Some("JPEG XL Signature"),
4422            BoxCode::JXS => Some("JPEG XS Signature"),
4423            BoxCode::SMDM => Some("Mastering Display Metadata Box"),
4424            BoxCode::UITS => Some("Unique Identifier Technology Solution"),
4425            BoxCode::A3DC => Some("A3DConfigurationBox"),
4426            BoxCode::ACXD => Some("Decoder-specific info for Auro-Cx audio"),
4427            BoxCode::ADES => {
4428                Some(
4429                    "description of the content for accessibility purposes (similar to the HTML alt attribute); formatted as for the cprt user-data item",
4430                )
4431            }
4432            BoxCode::AEDB => Some("audio element description"),
4433            BoxCode::AELM => Some("audio element box"),
4434            BoxCode::AEPP => Some("audio element positioning interactivity polar box"),
4435            BoxCode::AEPR => Some("audio element prominence interactivity box"),
4436            BoxCode::AESB => Some("audio element selection box"),
4437            BoxCode::AESD => Some("audio element selection description box"),
4438            BoxCode::AINF => Some("Asset information to identify, license and play"),
4439            BoxCode::ALBM => Some("Album title and track number for media"),
4440            BoxCode::ALMO => {
4441                Some("Alpha mode (straight vs premultiplied alpha) signaling")
4442            }
4443            BoxCode::ALOU => Some("Album loudness base"),
4444            BoxCode::AMVE => Some("Ambient viewing environment"),
4445            BoxCode::ANGL => {
4446                Some("Name of the camera angle through which the clip was shot")
4447            }
4448            BoxCode::APVC => Some("APV Codec Configuration Box"),
4449            BoxCode::ARDI => Some("audio rendering indication"),
4450            BoxCode::ASSP => Some("alternative startup sequence properties"),
4451            BoxCode::AUTH => Some("Author of the media"),
4452            BoxCode::AUXI => Some("Auxiliary track type information"),
4453            BoxCode::AV1C => Some("AOM Video Codec Configuration"),
4454            BoxCode::AVCC => Some("AVC Configuration"),
4455            BoxCode::AVCN => Some("AVC NAL Unit Storage Box"),
4456            BoxCode::BIDX => Some("Box Index"),
4457            BoxCode::BLOC => {
4458                Some("Base location and purchase location for license acquisition")
4459            }
4460            BoxCode::BMDM => Some("Buffer Model Description"),
4461            BoxCode::BPCC => Some("Bits per component"),
4462            BoxCode::BROB => Some("Brotli-compressed box"),
4463            BoxCode::BTRT => Some("Bit-rate information"),
4464            BoxCode::BUFF => Some("Buffering information"),
4465            BoxCode::BXML => Some("binary XML container"),
4466            BoxCode::CCID => Some("OMA DRM Content ID"),
4467            BoxCode::CCLV => Some("Content colour volume"),
4468            BoxCode::CCST => Some("Coding constraints box"),
4469            BoxCode::CDEF => {
4470                Some("type and ordering of the components within the codestream")
4471            }
4472            BoxCode::CHNL => Some("Channel layout"),
4473            BoxCode::CINF => Some("complete track information"),
4474            BoxCode::CLAP => Some("Clean aperture"),
4475            BoxCode::CLEV => Some("Component Reference Level"),
4476            BoxCode::CLFN => Some("Name of the clip file"),
4477            BoxCode::CLID => Some("Identifier of the clip"),
4478            BoxCode::CLIP => Some("Visual clipping region container"),
4479            BoxCode::CLLI => Some("Content Light Level"),
4480            BoxCode::CLOC => Some("Chroma Location"),
4481            BoxCode::CLSF => Some("Classification of the media"),
4482            BoxCode::CMAP => Some("mapping between a palette and codestream components"),
4483            BoxCode::CMID => Some("Identifier of the camera"),
4484            BoxCode::CMNM => Some("Name that identifies the camera"),
4485            BoxCode::CMPD => Some("Component Definition"),
4486            BoxCode::CO64 => Some("64-bit chunk offset"),
4487            BoxCode::COIF => Some("composition information"),
4488            BoxCode::COIN => Some("Content Information Box"),
4489            BoxCode::COLL => Some("Name of the collection from which the media comes"),
4490            BoxCode::COLR => Some("specifies the colourspace of the image"),
4491            BoxCode::COVI => Some("coverage information"),
4492            BoxCode::CPAL => Some("Component Palette Configuration"),
4493            BoxCode::CPAT => Some("Component Pattern Definition"),
4494            BoxCode::CPRT => Some("copyright etc."),
4495            BoxCode::CRGN => Some("Visual clipping region definition"),
4496            BoxCode::CRHD => Some("reserved for ClockReferenceStream header"),
4497            BoxCode::CSGM => {
4498                Some("Compact sample to group used in QuickTime File Format")
4499            }
4500            BoxCode::CSGP => Some("compact sample to group"),
4501            BoxCode::CSLG => Some("composition to decode timeline mapping"),
4502            BoxCode::CSTB => Some("corrected wall clock start time"),
4503            BoxCode::CTAB => Some("Track color-table"),
4504            BoxCode::CTTS => Some("(composition) time to sample"),
4505            BoxCode::CUVV => Some("HDR Vivid Configuration"),
4506            BoxCode::CVRU => Some("OMA DRM Cover URI"),
4507            BoxCode::DAC3 => Some("Decoder specific info for AC-3 audio"),
4508            BoxCode::DAC4 => Some("Decoder specific info for AC-4 audio"),
4509            BoxCode::DATE => {
4510                Some(
4511                    "Date and time, formatted according to ISO 8601, when the content was created. For clips captured by recording devices, this is typically the date and time when the clip’s recording started.",
4512                )
4513            }
4514            BoxCode::DCA3 => Some("Decoder configuration for AVS3-P3 Codec"),
4515            BoxCode::DCFD => Some("Marlin DCF Duration, user-data atom type"),
4516            BoxCode::DEC3 => Some("Decoder specific info for Enhanced AC-3 audio"),
4517            BoxCode::DFLA => Some("Free Lossless Audio Codec (FLAC) specific data"),
4518            BoxCode::DHEC => Some("Default HEVC extractor constructor box"),
4519            BoxCode::DIHD => Some("Data Integrity Hash"),
4520            BoxCode::DINF => Some("data information box, container"),
4521            BoxCode::DINT => Some("Data Integrity"),
4522            BoxCode::DISI => Some("Disparity Information"),
4523            BoxCode::DMIX => Some("Downmix instructions"),
4524            BoxCode::DMLP => Some("Decoder specific info for MLP audio"),
4525            BoxCode::DMON => Some("Mastering Display Metadata"),
4526            BoxCode::DREF => {
4527                Some("data reference box, declares source(s) of media data in track")
4528            }
4529            BoxCode::DSCP => Some("Media description"),
4530            BoxCode::DSGD => Some("DVB Sample Group Description Box"),
4531            BoxCode::DSTG => Some("DVB Sample to Group Box"),
4532            BoxCode::DVCC => Some("Dolby Vision Configuration"),
4533            BoxCode::DVVC => Some("Dolby Vision Extended Configuration"),
4534            BoxCode::DVWC => Some("Dolby Vision Extended Configuration 2"),
4535            BoxCode::ECAM => Some("Extrinsic camera parameters"),
4536            BoxCode::EDTS => Some("edit list container"),
4537            BoxCode::ELNG => Some("Extended Language Tag"),
4538            BoxCode::ELST => Some("an edit list"),
4539            BoxCode::EMSG => Some("event message"),
4540            BoxCode::ESDS => Some("Elementary stream descriptor"),
4541            BoxCode::ETYP => Some("extended type and type combination"),
4542            BoxCode::EVCC => Some("EVC configuration"),
4543            BoxCode::EVSC => Some("Configuration for EVC slice component track"),
4544            BoxCode::EVTI => Some("Event information"),
4545            BoxCode::FDEL => Some("File delivery information (item info extension)"),
4546            BoxCode::FECI => Some("FEC Informatiom"),
4547            BoxCode::FECR => Some("FEC Reservoir"),
4548            BoxCode::FIDX => Some("Box File Index"),
4549            BoxCode::FIEL => Some("Field Coding"),
4550            BoxCode::FIIN => Some("FD Item Information"),
4551            BoxCode::FIRE => Some("File Reservoir"),
4552            BoxCode::FOVD => Some("fisheye omnidirectional video"),
4553            BoxCode::FOVI => Some("fisheye video essential info"),
4554            BoxCode::FPAC => Some("Frame Packing Information"),
4555            BoxCode::FPAR => Some("File Partition"),
4556            BoxCode::FREE => Some("free space"),
4557            BoxCode::FRMA => Some("original format box"),
4558            BoxCode::FRPA => Some("Front Part"),
4559            BoxCode::FTYP => Some("file type and compatibility"),
4560            BoxCode::FVSI => Some("fisheye video supplemental info"),
4561            BoxCode::GITN => Some("Group ID to name"),
4562            BoxCode::GNRE => Some("Media genre"),
4563            BoxCode::GRPI => Some("OMA DRM Group ID"),
4564            BoxCode::GRPL => Some("Groups list box"),
4565            BoxCode::HDLR => Some("handler, declares the media (handler) type"),
4566            BoxCode::HINF => Some("hint information"),
4567            BoxCode::HMHD => {
4568                Some("hint media header, overall information (hint track only)")
4569            }
4570            BoxCode::HNTI => Some("Hint information"),
4571            BoxCode::HPIX => Some("Hipix Rich Picture (user-data or meta-data)"),
4572            BoxCode::HVCC => Some("HEVC Configuration"),
4573            BoxCode::HVTC => Some("HEVC Tile Configuration"),
4574            BoxCode::ICAM => Some("Intrinsic camera parameters"),
4575            BoxCode::ICNU => Some("OMA DRM Icon URI"),
4576            BoxCode::IDAT => Some("Item data"),
4577            BoxCode::IHDR => Some("Image Header"),
4578            BoxCode::IINF => Some("item information"),
4579            BoxCode::ILOC => Some("item location"),
4580            BoxCode::IMAP => Some("Track input map definition"),
4581            BoxCode::IMDA => Some("Identified media data"),
4582            BoxCode::IMIF => Some("IPMP Information box"),
4583            BoxCode::INFE => Some("Item information entry"),
4584            BoxCode::INFU => Some("OMA DRM Info URL"),
4585            BoxCode::IODS => Some("Object Descriptor container box"),
4586            BoxCode::IPCO => Some("ItemPropertyContainerBox"),
4587            BoxCode::IPHD => Some("reserved for IPMP Stream header"),
4588            BoxCode::IPMA => Some("ItemPropertyAssociation"),
4589            BoxCode::IPMC => Some("IPMP Control Box"),
4590            BoxCode::IPRO => Some("item protection"),
4591            BoxCode::IPRP => Some("Item Properties Box"),
4592            BoxCode::IREF => Some("Item reference"),
4593            BoxCode::IROI => Some("SVC region of interest box"),
4594            BoxCode::J2KH => Some("JPEG 2000 header info"),
4595            BoxCode::J2KP => Some("JPEG 2000 prefix"),
4596            BoxCode::JP => Some("JPEG 2000 Signature"),
4597            BoxCode::JBRD => Some("JPEG bitstream reconstruction data"),
4598            BoxCode::JP2C => Some("JPEG 2000 contiguous codestream"),
4599            BoxCode::JP2H => Some("Header"),
4600            BoxCode::JP2I => Some("intellectual property information"),
4601            BoxCode::JPGC => Some("JPEG Configuration"),
4602            BoxCode::JPTP => Some("JPEG XS Video Transport Parameter"),
4603            BoxCode::JPVI => Some("JPEG XS Video Information"),
4604            BoxCode::JPVS => Some("JPEG XS Video Support"),
4605            BoxCode::JUMB => Some("JPEG Universal Metadata Box Format (JUMBF)"),
4606            BoxCode::JXLC => Some("JPEG XL Codestream"),
4607            BoxCode::JXLI => Some("JPEG XL Frame Index"),
4608            BoxCode::JXLL => Some("JPEG XL Level"),
4609            BoxCode::JXLP => Some("JPEG XL Partial Codestream"),
4610            BoxCode::JXPL => Some("JPEG XS Profile and Level"),
4611            BoxCode::KIND => Some("Track kind"),
4612            BoxCode::KMAT => Some("Compressed visual track matte"),
4613            BoxCode::KYWD => Some("Media keywords"),
4614            BoxCode::LABL => Some("Label box"),
4615            BoxCode::LDEP => Some("Tier dependency box"),
4616            BoxCode::LEQI => Some("Loudness equalization instructions"),
4617            BoxCode::LEVA => Some("Leval assignment"),
4618            BoxCode::LHVC => Some("Layered HEVC Configuration"),
4619            BoxCode::LOAD => Some("Track pre-load definitions"),
4620            BoxCode::LOCI => Some("Media location information"),
4621            BoxCode::LOOP => Some("Looping behavior"),
4622            BoxCode::LRCU => Some("OMA DRM Lyrics URI"),
4623            BoxCode::LUDT => Some("Track loudness container"),
4624            BoxCode::LVCC => Some("LCEVC configuration"),
4625            BoxCode::M4DS => Some("MPEG-4 descriptors"),
4626            BoxCode::M7HD => Some("reserved for MPEG7Stream header"),
4627            BoxCode::MAEI => Some("MPEG-H Audio scene information"),
4628            BoxCode::MAEM => Some("MPEG-H Audio multi-stream signalling"),
4629            BoxCode::MANU => Some("Manufacturer name of the camera"),
4630            BoxCode::MATT => Some("Visual track matte for compositing"),
4631            BoxCode::MD5I => Some("MD5IntegrityBox"),
4632            BoxCode::MDAT => Some("media data container"),
4633            BoxCode::MDCV => Some("mastering display colour volume"),
4634            BoxCode::MDHD => Some("media header, overall information about the media"),
4635            BoxCode::MDIA => Some("container for the media information in a track"),
4636            BoxCode::MDRI => Some("Mutable DRM information"),
4637            BoxCode::MECO => Some("additional metadata container"),
4638            BoxCode::MEHD => Some("movie extends header box"),
4639            BoxCode::MEOF => Some("media offset"),
4640            BoxCode::MERE => Some("metabox relation"),
4641            BoxCode::MESH => Some("mesh box"),
4642            BoxCode::META => Some("Metadata container"),
4643            BoxCode::MFHD => Some("movie fragment header"),
4644            BoxCode::MFRA => Some("Movie fragment random access"),
4645            BoxCode::MFRO => Some("Movie fragment random access offset"),
4646            BoxCode::MHAC => Some("MPEG-H Audio Decoder Configuration"),
4647            BoxCode::MHAD => Some("MPEG-H Audio dynamic range control and loudness"),
4648            BoxCode::MHAP => Some("MPEG-H Audio profile and level compatibility set"),
4649            BoxCode::MINF => Some("media information container"),
4650            BoxCode::MINI => {
4651                Some(
4652                    "The MinimizedImageBox provides a more compact representation of the MetaBox for a subset of use cases",
4653                )
4654            }
4655            BoxCode::MJHD => Some("reserved for MPEG-J Stream header"),
4656            BoxCode::MMVI => Some("multimap video"),
4657            BoxCode::MODL => Some("Model name of the camera"),
4658            BoxCode::MOOF => Some("movie fragment"),
4659            BoxCode::MOOV => Some("container for all the meta-data"),
4660            BoxCode::MOVD => Some("mesh omnidirectional video"),
4661            BoxCode::MSTV => Some("MVC sub track view box"),
4662            BoxCode::MVCC => Some("MVC configuration"),
4663            BoxCode::MVCP => Some("MVC priority assignment"),
4664            BoxCode::MVCG => Some("Multiview group"),
4665            BoxCode::MVCI => Some("Multiview Information"),
4666            BoxCode::MVDC => Some("MVCDConfigurationBox"),
4667            BoxCode::MVEX => Some("movie extends box"),
4668            BoxCode::MVHD => Some("movie header, overall declarations"),
4669            BoxCode::MVRA => Some("Multiview Relation Attribute"),
4670            BoxCode::NMHD => {
4671                Some("Null media header, overall information (some tracks only)")
4672            }
4673            BoxCode::OCHD => Some("reserved for ObjectContentInfoStream header"),
4674            BoxCode::ODAF => Some("OMA DRM Access Unit Format"),
4675            BoxCode::ODDA => Some("OMA DRM Content Object"),
4676            BoxCode::ODHD => Some("reserved for ObjectDescriptorStream header"),
4677            BoxCode::ODHE => Some("OMA DRM Discrete Media Headers"),
4678            BoxCode::ODRB => Some("OMA DRM Rights Object"),
4679            BoxCode::ODRM => Some("OMA DRM Container"),
4680            BoxCode::ODTT => Some("OMA DRM Transaction Tracking"),
4681            BoxCode::OHDR => Some("OMA DRM Common headers"),
4682            BoxCode::ORIE => Some("Orientation information"),
4683            BoxCode::OTCF => Some("OMAF timed text configuration"),
4684            BoxCode::OTYP => Some("Original file type"),
4685            BoxCode::OVLY => Some("overlay configuration"),
4686            BoxCode::PADB => Some("sample padding bits"),
4687            BoxCode::PAEN => Some("Partition Entry"),
4688            BoxCode::PASP => Some("Pixel aspect ratio"),
4689            BoxCode::PCLR => {
4690                Some(
4691                    "palette which maps a single component in index space to a multiple- component image",
4692                )
4693            }
4694            BoxCode::PCMC => Some("Uncompressed audio PCM configuration"),
4695            BoxCode::PDAT => Some("Partial Data"),
4696            BoxCode::PDC1 => Some("Parametric DRC coefficients"),
4697            BoxCode::PDI1 => Some("Parametric DRC instructions"),
4698            BoxCode::PDIN => Some("Progressive download information"),
4699            BoxCode::PERF => Some("Media performer name"),
4700            BoxCode::PFHD => Some("Partial File Header"),
4701            BoxCode::PFIL => Some("Partial File"),
4702            BoxCode::PITM => Some("primary item reference"),
4703            BoxCode::PLOC => Some("Partial Segment Location"),
4704            BoxCode::PNOT => Some("Preview container"),
4705            BoxCode::POVD => Some("projected omnidirectional video"),
4706            BoxCode::PRFR => Some("projection format"),
4707            BoxCode::PRFT => Some("Producer reference time"),
4708            BoxCode::PRMD => Some("Production metadata box"),
4709            BoxCode::PRMR => Some("Production metadata reference box"),
4710            BoxCode::PSEG => Some("Partial Segment"),
4711            BoxCode::PSHD => Some("Partial Segment Header"),
4712            BoxCode::PSSH => Some("Protection system specific header"),
4713            BoxCode::PTLE => Some("Partial Top Level Entry"),
4714            BoxCode::QLIF => Some("Layer quality assignments"),
4715            BoxCode::REEL => Some("Name of the tape reel"),
4716            BoxCode::RES => Some("grid resolution"),
4717            BoxCode::RESC => Some("grid resolution at which the image was captured"),
4718            BoxCode::RESD => {
4719                Some("default grid resolution at which the image should be displayed")
4720            }
4721            BoxCode::RINF => Some("restricted scheme information box"),
4722            BoxCode::ROSC => Some("sphere region configuration"),
4723            BoxCode::ROTN => Some("rotation box"),
4724            BoxCode::RRGN => Some("SVC rect region box"),
4725            BoxCode::RSOT => Some("Redundant Sample Original Timing"),
4726            BoxCode::RTNG => Some("Media rating"),
4727            BoxCode::RVIF => Some("recommended viewport information"),
4728            BoxCode::RWPK => Some("region-wise packing"),
4729            BoxCode::SAIO => Some("Sample auxiliary information offsets"),
4730            BoxCode::SAIZ => Some("Sample auxiliary information sizes"),
4731            BoxCode::SBGP => Some("Sample to Group box"),
4732            BoxCode::SBPM => Some("Sensor Bad Pixels Map"),
4733            BoxCode::SCEN => Some("Name of the scene for which the clip was shot"),
4734            BoxCode::SCHI => Some("scheme information box"),
4735            BoxCode::SCHM => Some("scheme type box"),
4736            BoxCode::SCRB => Some("Scramble scheme information"),
4737            BoxCode::SDEP => Some("Sample dependency"),
4738            BoxCode::SDHD => Some("reserved for SceneDescriptionStream header"),
4739            BoxCode::SDP => Some("SDP information"),
4740            BoxCode::SDTP => Some("Independent and Disposable Samples Box"),
4741            BoxCode::SDVP => Some("SD Profile Box"),
4742            BoxCode::SEGR => Some("file delivery session group"),
4743            BoxCode::SEIB => Some("Scalability information"),
4744            BoxCode::SEII => Some("SEI information box"),
4745            BoxCode::SENC => Some("Sample specific encryption data"),
4746            BoxCode::SGPD => Some("Sample group definition box"),
4747            BoxCode::SHOT => Some("Name that identifies the shot"),
4748            BoxCode::SIDX => Some("Segment Index Box"),
4749            BoxCode::SILB => Some("Scheme ID list Box"),
4750            BoxCode::SINF => Some("protection scheme information box"),
4751            BoxCode::SKIP => Some("free space"),
4752            BoxCode::SLNO => Some("Serial number of the camera"),
4753            BoxCode::SMHD => {
4754                Some("sound media header, overall information (sound track only)")
4755            }
4756            BoxCode::SNUC => Some("Sensor Non-Uniformity Correction"),
4757            BoxCode::SPKI => Some("Sample packing information box"),
4758            BoxCode::SPLZ => Some("Polarization Pattern Definition"),
4759            BoxCode::SPRG => Some("sub-picture region"),
4760            BoxCode::SRAT => Some("Sampling rate"),
4761            BoxCode::SRMB => Some("System Renewability Message"),
4762            BoxCode::SRMC => Some("System Renewability Message container"),
4763            BoxCode::SRPP => Some("STRP Process"),
4764            BoxCode::SRQR => Some("sphere region quality ranking"),
4765            BoxCode::SSIX => Some("Sub-sample index"),
4766            BoxCode::SSRT => Some("Sub-sample Reference Table Box"),
4767            BoxCode::SSTL => Some("SVC sub track layer box"),
4768            BoxCode::STBL => Some("sample table box, container for the time/space map"),
4769            BoxCode::STCO => Some("chunk offset, partial data-offset information"),
4770            BoxCode::STDP => Some("sample degradation priority"),
4771            BoxCode::STHD => Some("Subtitle Media Header Box"),
4772            BoxCode::STMG => Some("MVC sub track multiview group box"),
4773            BoxCode::STRD => Some("Sub-track definition"),
4774            BoxCode::STRI => Some("Sub-track information"),
4775            BoxCode::STRK => Some("Sub track information"),
4776            BoxCode::STSC => Some("sample-to-chunk, partial data-offset information"),
4777            BoxCode::STSD => {
4778                Some("sample descriptions (codec types, initialization etc.)")
4779            }
4780            BoxCode::STSG => Some("Sub-track sample grouping"),
4781            BoxCode::STSH => Some("shadow sync sample table"),
4782            BoxCode::STSS => Some("sync sample table (random access points)"),
4783            BoxCode::STSZ => Some("sample sizes (framing)"),
4784            BoxCode::STTI => Some("Sub track tier box"),
4785            BoxCode::STTS => Some("(decoding) time-to-sample"),
4786            BoxCode::STVI => Some("Stereo Video Box"),
4787            BoxCode::STYP => Some("Segment Type Box"),
4788            BoxCode::STZ2 => Some("compact sample sizes (framing)"),
4789            BoxCode::SUBS => Some("Sub-sample information"),
4790            BoxCode::SUEP => Some("signer identity information"),
4791            BoxCode::SUMI => Some("supplemental surveillance meta information"),
4792            BoxCode::SURL => Some("Source URL"),
4793            BoxCode::SVCC => Some("SVC configuration"),
4794            BoxCode::SVCP => Some("SVC priority assignments"),
4795            BoxCode::SVDR => Some("SVC dependency range"),
4796            BoxCode::SVIP => Some("Initial parameter sets box for tiers"),
4797            BoxCode::SVMC => Some("SVC information configuration"),
4798            BoxCode::SVPR => Some("Priority range"),
4799            BoxCode::SWRE => {
4800                Some("Name and version number of the software that generated this movie")
4801            }
4802            BoxCode::SWTC => Some("Multiview Group Relation"),
4803            BoxCode::TENC => Some("Track Encryption"),
4804            BoxCode::TFAD => Some("Track fragment adjustment box"),
4805            BoxCode::TFDT => Some("Track fragment decode time"),
4806            BoxCode::TFHD => Some("Track fragment header"),
4807            BoxCode::TFMA => Some("Track fragment media adjustment box"),
4808            BoxCode::TFRA => Some("Track fragment radom access"),
4809            BoxCode::THMB => Some("Thumbnail image of the media"),
4810            BoxCode::TIBR => Some("Tier Bit rate"),
4811            BoxCode::TIRI => Some("Tier Information"),
4812            BoxCode::TITL => Some("Media title"),
4813            BoxCode::TKHD => Some("Track header, overall information about the track"),
4814            BoxCode::TLOU => Some("Track loudness base"),
4815            BoxCode::TRAF => Some("Track fragment"),
4816            BoxCode::TRAK => Some("container for an individual track or stream"),
4817            BoxCode::TRAN => Some("SVC lightweight transcoding"),
4818            BoxCode::TREF => Some("track reference container"),
4819            BoxCode::TREP => Some("track extension properties"),
4820            BoxCode::TREX => Some("track extends defaults"),
4821            BoxCode::TRGR => Some("Track grouping information"),
4822            BoxCode::TRIK => Some("Facilitates random access and trick play modes"),
4823            BoxCode::TRUN => Some("track fragment run"),
4824            BoxCode::TSEL => Some("Track selection"),
4825            BoxCode::TSTB => Some("TileSubTrackGroupBox"),
4826            BoxCode::TTYP => Some("track type and compatibility"),
4827            BoxCode::TXTC => Some("Text stream configuration"),
4828            BoxCode::TYCO => Some("type and-combination"),
4829            BoxCode::UDC1 => Some("Basic DRC coefficients"),
4830            BoxCode::UDC2 => Some("Unified DRC coefficients"),
4831            BoxCode::UDEX => Some("Unified DRC configuration extension"),
4832            BoxCode::UDI1 => Some("Basic DRC instructions"),
4833            BoxCode::UDI2 => Some("Unified DRC instructions"),
4834            BoxCode::UDTA => Some("user-data"),
4835            BoxCode::UEQC => Some("Equalization coefficients"),
4836            BoxCode::UEQI => Some("Equalization instructions"),
4837            BoxCode::UINF => {
4838                Some(
4839                    "a tool by which a vendor may provide access to additional information associated with a UUID",
4840                )
4841            }
4842            BoxCode::ULST => Some("a list of UUID’s"),
4843            BoxCode::UNCC => Some("Uncompressed Frame Configuration"),
4844            BoxCode::URAT => Some("User 'star' rating of the media"),
4845            BoxCode::URII => Some("URI Information"),
4846            BoxCode::URL => Some("a URL"),
4847            BoxCode::UUID => Some("user-extension box"),
4848            BoxCode::V3CC => Some("V3C Configuration"),
4849            BoxCode::V3SC => Some("V3C spatial region collection"),
4850            BoxCode::V3TC => Some("V3C Atlas Tile Configuration"),
4851            BoxCode::VEXU => Some("Video Extended Usage"),
4852            BoxCode::VIPR => Some("View priority Box"),
4853            BoxCode::VLAB => Some("WebVTT Source Label"),
4854            BoxCode::VMHD => {
4855                Some("video media header, overall information (video track only)")
4856            }
4857            BoxCode::VPBB => Some("Volumetric media bounding box"),
4858            BoxCode::VPCC => Some("VP9 Codec Configuration"),
4859            BoxCode::VSIB => Some("View scalability information"),
4860            BoxCode::VSSN => Some("viewing space"),
4861            BoxCode::VTTC => Some("WebVTTConfigurationBox"),
4862            BoxCode::VUNT => Some("V3C unit header"),
4863            BoxCode::VVCC => Some("VVC video configuration"),
4864            BoxCode::VVHD => Some("volumetric visual media header"),
4865            BoxCode::VVNC => Some("VVC Network Abstraction Layer unit configuration"),
4866            BoxCode::VWDI => Some("Multiview Scene Information"),
4867            BoxCode::VWID => Some("View identifier"),
4868            BoxCode::WIDE => Some("Expansion space reservation"),
4869            BoxCode::WMPI => Some("segment position in the watermark pattern"),
4870            BoxCode::XML => {
4871                Some("a tool by which vendors can add XML formatted information")
4872            }
4873            BoxCode::YRRC => Some("Year when media was recorded"),
4874            _ => None,
4875        }
4876    }
4877}
4878impl ObjectTypeIdentifier {
4879    /// Forbidden
4880    ///
4881    /// Type value: `0x00`
4882    pub const FORBIDDEN: ObjectTypeIdentifier = ObjectTypeIdentifier(0x00);
4883    /// Systems ISO/IEC 14496-1
4884    ///
4885    /// Type value: `0x01`
4886    ///
4887    /// Specification: _MPEG-4_
4888    pub const SYSTEMS_ISO_IEC_14496_1: ObjectTypeIdentifier = ObjectTypeIdentifier(0x01);
4889    /// Systems ISO/IEC 14496-1
4890    ///
4891    /// Type value: `0x02`
4892    ///
4893    /// Specification: _MPEG-4_
4894    pub const SYSTEMS_ISO_IEC_14496_1_BIFS_V_2_CONFIG: ObjectTypeIdentifier = ObjectTypeIdentifier(
4895        0x02,
4896    );
4897    /// Interaction Stream
4898    ///
4899    /// Type value: `0x03`
4900    ///
4901    /// Specification: _MPEG-4_
4902    pub const INTERACTION_STREAM: ObjectTypeIdentifier = ObjectTypeIdentifier(0x03);
4903    /// Extended BIFS
4904    ///
4905    /// Type value: `0x04`
4906    ///
4907    /// Specification: _MPEG-4_
4908    pub const EXTENDED_BIFS: ObjectTypeIdentifier = ObjectTypeIdentifier(0x04);
4909    /// AFX Stream
4910    ///
4911    /// Type value: `0x05`
4912    ///
4913    /// Specification: _MPEG-4_
4914    pub const AFX_STREAM: ObjectTypeIdentifier = ObjectTypeIdentifier(0x05);
4915    /// Font Data Stream
4916    ///
4917    /// Type value: `0x06`
4918    ///
4919    /// Specification: _MPEG-4_
4920    pub const FONT_DATA_STREAM: ObjectTypeIdentifier = ObjectTypeIdentifier(0x06);
4921    /// Synthetised Texture
4922    ///
4923    /// Type value: `0x07`
4924    ///
4925    /// Specification: _MPEG-4_
4926    pub const SYNTHETISED_TEXTURE: ObjectTypeIdentifier = ObjectTypeIdentifier(0x07);
4927    /// Text Stream
4928    ///
4929    /// Type value: `0x08`
4930    ///
4931    /// Specification: _MPEG-4_
4932    pub const TEXT_STREAM: ObjectTypeIdentifier = ObjectTypeIdentifier(0x08);
4933    /// LASeR Stream
4934    ///
4935    /// Type value: `0x09`
4936    ///
4937    /// Specification: _MPEG-4_
4938    pub const LA_SE_R_STREAM: ObjectTypeIdentifier = ObjectTypeIdentifier(0x09);
4939    /// Simple Aggregation Format  Stream
4940    ///
4941    /// Type value: `0x0A`
4942    ///
4943    /// Specification: _MPEG-4_
4944    pub const SIMPLE_AGGREGATION_FORMAT_STREAM: ObjectTypeIdentifier = ObjectTypeIdentifier(
4945        0x0A,
4946    );
4947    /// Visual ISO/IEC 14496-2
4948    ///
4949    /// Type value: `0x20`
4950    ///
4951    /// Specification: _MPEG-4_
4952    pub const VISUAL_ISO_IEC_14496_2: ObjectTypeIdentifier = ObjectTypeIdentifier(0x20);
4953    /// Visual ITU-T Recommendation H.264 | ISO/IEC 14496-10
4954    ///
4955    /// Type value: `0x21`
4956    ///
4957    /// Specification: _MPEG-4_
4958    pub const VISUAL_ITU_T_RECOMMENDATION_H_264_ISO_IEC_14496_10: ObjectTypeIdentifier = ObjectTypeIdentifier(
4959        0x21,
4960    );
4961    /// Parameter Sets for ITU-T Recommendation H.264 | ISO/IEC 14496-10
4962    ///
4963    /// Type value: `0x22`
4964    ///
4965    /// Specification: _MPEG-4_
4966    pub const PARAMETER_SETS_FOR_ITU_T_RECOMMENDATION_H_264_ISO_IEC_14496_10: ObjectTypeIdentifier = ObjectTypeIdentifier(
4967        0x22,
4968    );
4969    /// Visual ISO/IEC 23008-2 | ITU-T Recommendation H.265
4970    ///
4971    /// Type value: `0x23`
4972    ///
4973    /// Specification: _MPEG-4_
4974    pub const VISUAL_ISO_IEC_23008_2_ITU_T_RECOMMENDATION_H_265: ObjectTypeIdentifier = ObjectTypeIdentifier(
4975        0x23,
4976    );
4977    /// Audio ISO/IEC 14496-3
4978    ///
4979    /// Type value: `0x40`
4980    ///
4981    /// Specification: _MPEG-4_
4982    pub const AUDIO_ISO_IEC_14496_3: ObjectTypeIdentifier = ObjectTypeIdentifier(0x40);
4983    /// Visual ISO/IEC 13818-2 Simple Profile
4984    ///
4985    /// Type value: `0x60`
4986    ///
4987    /// Specification: _MPEG-4_
4988    pub const VISUAL_ISO_IEC_13818_2_SIMPLE_PROFILE: ObjectTypeIdentifier = ObjectTypeIdentifier(
4989        0x60,
4990    );
4991    /// Visual ISO/IEC 13818-2 Main Profile
4992    ///
4993    /// Type value: `0x61`
4994    ///
4995    /// Specification: _MPEG-4_
4996    pub const VISUAL_ISO_IEC_13818_2_MAIN_PROFILE: ObjectTypeIdentifier = ObjectTypeIdentifier(
4997        0x61,
4998    );
4999    /// Visual ISO/IEC 13818-2 SNR Profile
5000    ///
5001    /// Type value: `0x62`
5002    ///
5003    /// Specification: _MPEG-4_
5004    pub const VISUAL_ISO_IEC_13818_2_SNR_PROFILE: ObjectTypeIdentifier = ObjectTypeIdentifier(
5005        0x62,
5006    );
5007    /// Visual ISO/IEC 13818-2 Spatial Profile
5008    ///
5009    /// Type value: `0x63`
5010    ///
5011    /// Specification: _MPEG-4_
5012    pub const VISUAL_ISO_IEC_13818_2_SPATIAL_PROFILE: ObjectTypeIdentifier = ObjectTypeIdentifier(
5013        0x63,
5014    );
5015    /// Visual ISO/IEC 13818-2 High Profile
5016    ///
5017    /// Type value: `0x64`
5018    ///
5019    /// Specification: _MPEG-4_
5020    pub const VISUAL_ISO_IEC_13818_2_HIGH_PROFILE: ObjectTypeIdentifier = ObjectTypeIdentifier(
5021        0x64,
5022    );
5023    /// Visual ISO/IEC 13818-2 422 Profile
5024    ///
5025    /// Type value: `0x65`
5026    ///
5027    /// Specification: _MPEG-4_
5028    pub const VISUAL_ISO_IEC_13818_2_422_PROFILE: ObjectTypeIdentifier = ObjectTypeIdentifier(
5029        0x65,
5030    );
5031    /// Audio ISO/IEC 13818-7 Main Profile
5032    ///
5033    /// Type value: `0x66`
5034    ///
5035    /// Specification: _MPEG-4_
5036    pub const AUDIO_ISO_IEC_13818_7_MAIN_PROFILE: ObjectTypeIdentifier = ObjectTypeIdentifier(
5037        0x66,
5038    );
5039    /// Audio ISO/IEC 13818-7 LowComplexity Profile
5040    ///
5041    /// Type value: `0x67`
5042    ///
5043    /// Specification: _MPEG-4_
5044    pub const AUDIO_ISO_IEC_13818_7_LOW_COMPLEXITY_PROFILE: ObjectTypeIdentifier = ObjectTypeIdentifier(
5045        0x67,
5046    );
5047    /// Audio ISO/IEC 13818-7 Scaleable Sampling Rate Profile
5048    ///
5049    /// Type value: `0x68`
5050    ///
5051    /// Specification: _MPEG-4_
5052    pub const AUDIO_ISO_IEC_13818_7_SCALEABLE_SAMPLING_RATE_PROFILE: ObjectTypeIdentifier = ObjectTypeIdentifier(
5053        0x68,
5054    );
5055    /// Audio ISO/IEC 13818-3
5056    ///
5057    /// Type value: `0x69`
5058    ///
5059    /// Specification: _MPEG-4_
5060    pub const AUDIO_ISO_IEC_13818_3: ObjectTypeIdentifier = ObjectTypeIdentifier(0x69);
5061    /// Visual ISO/IEC 11172-2
5062    ///
5063    /// Type value: `0x6A`
5064    ///
5065    /// Specification: _MPEG-4_
5066    pub const VISUAL_ISO_IEC_11172_2: ObjectTypeIdentifier = ObjectTypeIdentifier(0x6A);
5067    /// Audio ISO/IEC 11172-3
5068    ///
5069    /// Type value: `0x6B`
5070    ///
5071    /// Specification: _MPEG-4_
5072    pub const AUDIO_ISO_IEC_11172_3: ObjectTypeIdentifier = ObjectTypeIdentifier(0x6B);
5073    /// Visual ISO/IEC 10918-1
5074    ///
5075    /// Type value: `0x6C`
5076    ///
5077    /// Specification: _MPEG-4_
5078    pub const VISUAL_ISO_IEC_10918_1: ObjectTypeIdentifier = ObjectTypeIdentifier(0x6C);
5079    /// Portable Network Graphics
5080    ///
5081    /// Type value: `0x6D`
5082    ///
5083    /// Specification: _PNG_
5084    pub const PORTABLE_NETWORK_GRAPHICS: ObjectTypeIdentifier = ObjectTypeIdentifier(
5085        0x6D,
5086    );
5087    /// Visual ISO/IEC 15444-1
5088    ///
5089    /// Type value: `0x6E`
5090    ///
5091    /// Specification: _MPEG-4_
5092    pub const VISUAL_ISO_IEC_15444_1: ObjectTypeIdentifier = ObjectTypeIdentifier(0x6E);
5093    /// EVRC Voice
5094    ///
5095    /// Type value: `0xA0`
5096    ///
5097    /// Specification: _3GPP2_
5098    pub const EVRC_VOICE: ObjectTypeIdentifier = ObjectTypeIdentifier(0xA0);
5099    /// SMV Voice
5100    ///
5101    /// Type value: `0xA1`
5102    ///
5103    /// Specification: _3GPP2_
5104    pub const SMV_VOICE: ObjectTypeIdentifier = ObjectTypeIdentifier(0xA1);
5105    /// 3GPP2 Compact Multimedia Format
5106    ///
5107    /// Type value: `0xA2`
5108    ///
5109    /// Specification: _3GPP2_
5110    pub const THREE_GPP_2_COMPACT_MULTIMEDIA_FORMAT: ObjectTypeIdentifier = ObjectTypeIdentifier(
5111        0xA2,
5112    );
5113    /// SMPTE VC-1 Video
5114    ///
5115    /// Type value: `0xA3`
5116    ///
5117    /// Specification: _SMPTE_
5118    pub const SMPTE_VC_1_VIDEO: ObjectTypeIdentifier = ObjectTypeIdentifier(0xA3);
5119    /// Dirac Video Coder
5120    ///
5121    /// Type value: `0xA4`
5122    ///
5123    /// Specification: _Dirac_
5124    pub const DIRAC_VIDEO_CODER: ObjectTypeIdentifier = ObjectTypeIdentifier(0xA4);
5125    /// DRA Audio
5126    ///
5127    /// Type value: `0xA7`
5128    ///
5129    /// Specification: _DRA_
5130    pub const DRA_AUDIO: ObjectTypeIdentifier = ObjectTypeIdentifier(0xA7);
5131    /// ITU G.719 Audio
5132    ///
5133    /// Type value: `0xA8`
5134    ///
5135    /// Specification: _ITU G.719_
5136    pub const ITU_G_719_AUDIO: ObjectTypeIdentifier = ObjectTypeIdentifier(0xA8);
5137    /// Core Substream
5138    ///
5139    /// Type value: `0xA9`
5140    ///
5141    /// Specification: _DTS-HD_
5142    pub const CORE_SUBSTREAM: ObjectTypeIdentifier = ObjectTypeIdentifier(0xA9);
5143    /// Core Substream + Extension Substream
5144    ///
5145    /// Type value: `0xAA`
5146    ///
5147    /// Specification: _DTS-HD_
5148    pub const CORE_SUBSTREAM_EXTENSION_SUBSTREAM: ObjectTypeIdentifier = ObjectTypeIdentifier(
5149        0xAA,
5150    );
5151    /// Extension Substream containing only XLL
5152    ///
5153    /// Type value: `0xAB`
5154    ///
5155    /// Specification: _DTS-HD_
5156    pub const EXTENSION_SUBSTREAM_CONTAINING_ONLY_XLL: ObjectTypeIdentifier = ObjectTypeIdentifier(
5157        0xAB,
5158    );
5159    /// Extension Substream containing only LBR
5160    ///
5161    /// Type value: `0xAC`
5162    ///
5163    /// Specification: _DTS-HD_
5164    pub const EXTENSION_SUBSTREAM_CONTAINING_ONLY_LBR: ObjectTypeIdentifier = ObjectTypeIdentifier(
5165        0xAC,
5166    );
5167    /// Opus audio
5168    ///
5169    /// Type value: `0xAD`
5170    ///
5171    /// Specification: _Opus_
5172    pub const OPUS_AUDIO: ObjectTypeIdentifier = ObjectTypeIdentifier(0xAD);
5173    /// Auro-Cx 3D audio
5174    ///
5175    /// Type value: `0xAF`
5176    ///
5177    /// Specification: _Auro_
5178    pub const AURO_CX_3_D_AUDIO: ObjectTypeIdentifier = ObjectTypeIdentifier(0xAF);
5179    /// RealVideo Codec 11
5180    ///
5181    /// Type value: `0xB0`
5182    ///
5183    /// Specification: _RealHD_
5184    pub const REAL_VIDEO_CODEC_11: ObjectTypeIdentifier = ObjectTypeIdentifier(0xB0);
5185    /// VP9 Video
5186    ///
5187    /// Type value: `0xB1`
5188    ///
5189    /// Specification: _VPxx_
5190    pub const VP_9_VIDEO: ObjectTypeIdentifier = ObjectTypeIdentifier(0xB1);
5191    /// DTS-UHD profile 2
5192    ///
5193    /// Type value: `0xB2`
5194    ///
5195    /// Specification: _DTS-UHD_
5196    pub const DTS_UHD_PROFILE_2: ObjectTypeIdentifier = ObjectTypeIdentifier(0xB2);
5197    /// DTS-UHD profile 3 or higher
5198    ///
5199    /// Type value: `0xB3`
5200    ///
5201    /// Specification: _DTS-UHD_
5202    pub const DTS_UHD_PROFILE_3_OR_HIGHER: ObjectTypeIdentifier = ObjectTypeIdentifier(
5203        0xB3,
5204    );
5205    /// 13K Voice
5206    ///
5207    /// Type value: `0xE1`
5208    ///
5209    /// Specification: _3GPP2_
5210    pub const ONE_3_K_VOICE: ObjectTypeIdentifier = ObjectTypeIdentifier(0xE1);
5211    /// no object type specified
5212    ///
5213    /// Type value: `0xFF`
5214    ///
5215    /// Specification: _MPEG-4_
5216    pub const NO_OBJECT_TYPE_SPECIFIED: ObjectTypeIdentifier = ObjectTypeIdentifier(
5217        0xFF,
5218    );
5219}
5220impl fmt::Debug for ObjectTypeIdentifier {
5221    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
5222        let label = match *self {
5223            ObjectTypeIdentifier::FORBIDDEN => "FORBIDDEN",
5224            ObjectTypeIdentifier::SYSTEMS_ISO_IEC_14496_1 => "SYSTEMS_ISO_IEC_14496_1",
5225            ObjectTypeIdentifier::SYSTEMS_ISO_IEC_14496_1_BIFS_V_2_CONFIG => {
5226                "SYSTEMS_ISO_IEC_14496_1_BIFS_V_2_CONFIG"
5227            }
5228            ObjectTypeIdentifier::INTERACTION_STREAM => "INTERACTION_STREAM",
5229            ObjectTypeIdentifier::EXTENDED_BIFS => "EXTENDED_BIFS",
5230            ObjectTypeIdentifier::AFX_STREAM => "AFX_STREAM",
5231            ObjectTypeIdentifier::FONT_DATA_STREAM => "FONT_DATA_STREAM",
5232            ObjectTypeIdentifier::SYNTHETISED_TEXTURE => "SYNTHETISED_TEXTURE",
5233            ObjectTypeIdentifier::TEXT_STREAM => "TEXT_STREAM",
5234            ObjectTypeIdentifier::LA_SE_R_STREAM => "LA_SE_R_STREAM",
5235            ObjectTypeIdentifier::SIMPLE_AGGREGATION_FORMAT_STREAM => {
5236                "SIMPLE_AGGREGATION_FORMAT_STREAM"
5237            }
5238            ObjectTypeIdentifier::VISUAL_ISO_IEC_14496_2 => "VISUAL_ISO_IEC_14496_2",
5239            ObjectTypeIdentifier::VISUAL_ITU_T_RECOMMENDATION_H_264_ISO_IEC_14496_10 => {
5240                "VISUAL_ITU_T_RECOMMENDATION_H_264_ISO_IEC_14496_10"
5241            }
5242            ObjectTypeIdentifier::PARAMETER_SETS_FOR_ITU_T_RECOMMENDATION_H_264_ISO_IEC_14496_10 => {
5243                "PARAMETER_SETS_FOR_ITU_T_RECOMMENDATION_H_264_ISO_IEC_14496_10"
5244            }
5245            ObjectTypeIdentifier::VISUAL_ISO_IEC_23008_2_ITU_T_RECOMMENDATION_H_265 => {
5246                "VISUAL_ISO_IEC_23008_2_ITU_T_RECOMMENDATION_H_265"
5247            }
5248            ObjectTypeIdentifier::AUDIO_ISO_IEC_14496_3 => "AUDIO_ISO_IEC_14496_3",
5249            ObjectTypeIdentifier::VISUAL_ISO_IEC_13818_2_SIMPLE_PROFILE => {
5250                "VISUAL_ISO_IEC_13818_2_SIMPLE_PROFILE"
5251            }
5252            ObjectTypeIdentifier::VISUAL_ISO_IEC_13818_2_MAIN_PROFILE => {
5253                "VISUAL_ISO_IEC_13818_2_MAIN_PROFILE"
5254            }
5255            ObjectTypeIdentifier::VISUAL_ISO_IEC_13818_2_SNR_PROFILE => {
5256                "VISUAL_ISO_IEC_13818_2_SNR_PROFILE"
5257            }
5258            ObjectTypeIdentifier::VISUAL_ISO_IEC_13818_2_SPATIAL_PROFILE => {
5259                "VISUAL_ISO_IEC_13818_2_SPATIAL_PROFILE"
5260            }
5261            ObjectTypeIdentifier::VISUAL_ISO_IEC_13818_2_HIGH_PROFILE => {
5262                "VISUAL_ISO_IEC_13818_2_HIGH_PROFILE"
5263            }
5264            ObjectTypeIdentifier::VISUAL_ISO_IEC_13818_2_422_PROFILE => {
5265                "VISUAL_ISO_IEC_13818_2_422_PROFILE"
5266            }
5267            ObjectTypeIdentifier::AUDIO_ISO_IEC_13818_7_MAIN_PROFILE => {
5268                "AUDIO_ISO_IEC_13818_7_MAIN_PROFILE"
5269            }
5270            ObjectTypeIdentifier::AUDIO_ISO_IEC_13818_7_LOW_COMPLEXITY_PROFILE => {
5271                "AUDIO_ISO_IEC_13818_7_LOW_COMPLEXITY_PROFILE"
5272            }
5273            ObjectTypeIdentifier::AUDIO_ISO_IEC_13818_7_SCALEABLE_SAMPLING_RATE_PROFILE => {
5274                "AUDIO_ISO_IEC_13818_7_SCALEABLE_SAMPLING_RATE_PROFILE"
5275            }
5276            ObjectTypeIdentifier::AUDIO_ISO_IEC_13818_3 => "AUDIO_ISO_IEC_13818_3",
5277            ObjectTypeIdentifier::VISUAL_ISO_IEC_11172_2 => "VISUAL_ISO_IEC_11172_2",
5278            ObjectTypeIdentifier::AUDIO_ISO_IEC_11172_3 => "AUDIO_ISO_IEC_11172_3",
5279            ObjectTypeIdentifier::VISUAL_ISO_IEC_10918_1 => "VISUAL_ISO_IEC_10918_1",
5280            ObjectTypeIdentifier::PORTABLE_NETWORK_GRAPHICS => {
5281                "PORTABLE_NETWORK_GRAPHICS"
5282            }
5283            ObjectTypeIdentifier::VISUAL_ISO_IEC_15444_1 => "VISUAL_ISO_IEC_15444_1",
5284            ObjectTypeIdentifier::EVRC_VOICE => "EVRC_VOICE",
5285            ObjectTypeIdentifier::SMV_VOICE => "SMV_VOICE",
5286            ObjectTypeIdentifier::THREE_GPP_2_COMPACT_MULTIMEDIA_FORMAT => {
5287                "THREE_GPP_2_COMPACT_MULTIMEDIA_FORMAT"
5288            }
5289            ObjectTypeIdentifier::SMPTE_VC_1_VIDEO => "SMPTE_VC_1_VIDEO",
5290            ObjectTypeIdentifier::DIRAC_VIDEO_CODER => "DIRAC_VIDEO_CODER",
5291            ObjectTypeIdentifier(0xA5) => "WITHDRAWN",
5292            ObjectTypeIdentifier(0xA6) => "WITHDRAWN",
5293            ObjectTypeIdentifier::DRA_AUDIO => "DRA_AUDIO",
5294            ObjectTypeIdentifier::ITU_G_719_AUDIO => "ITU_G_719_AUDIO",
5295            ObjectTypeIdentifier::CORE_SUBSTREAM => "CORE_SUBSTREAM",
5296            ObjectTypeIdentifier::CORE_SUBSTREAM_EXTENSION_SUBSTREAM => {
5297                "CORE_SUBSTREAM_EXTENSION_SUBSTREAM"
5298            }
5299            ObjectTypeIdentifier::EXTENSION_SUBSTREAM_CONTAINING_ONLY_XLL => {
5300                "EXTENSION_SUBSTREAM_CONTAINING_ONLY_XLL"
5301            }
5302            ObjectTypeIdentifier::EXTENSION_SUBSTREAM_CONTAINING_ONLY_LBR => {
5303                "EXTENSION_SUBSTREAM_CONTAINING_ONLY_LBR"
5304            }
5305            ObjectTypeIdentifier::OPUS_AUDIO => "OPUS_AUDIO",
5306            ObjectTypeIdentifier(0xAE) => "WITHDRAWN",
5307            ObjectTypeIdentifier::AURO_CX_3_D_AUDIO => "AURO_CX_3_D_AUDIO",
5308            ObjectTypeIdentifier::REAL_VIDEO_CODEC_11 => "REAL_VIDEO_CODEC_11",
5309            ObjectTypeIdentifier::VP_9_VIDEO => "VP_9_VIDEO",
5310            ObjectTypeIdentifier::DTS_UHD_PROFILE_2 => "DTS_UHD_PROFILE_2",
5311            ObjectTypeIdentifier::DTS_UHD_PROFILE_3_OR_HIGHER => {
5312                "DTS_UHD_PROFILE_3_OR_HIGHER"
5313            }
5314            ObjectTypeIdentifier(0xc0..=0xe0) => "USER_PRIVATE",
5315            ObjectTypeIdentifier::ONE_3_K_VOICE => "ONE_3_K_VOICE",
5316            ObjectTypeIdentifier(0xe2..=0xfe) => "USER_PRIVATE",
5317            ObjectTypeIdentifier::NO_OBJECT_TYPE_SPECIFIED => "NO_OBJECT_TYPE_SPECIFIED",
5318            ObjectTypeIdentifier(_) => "RESERVED",
5319        };
5320        write!(f, "{}({:#04x})", label, self.0)
5321    }
5322}
5323impl BrandCode {
5324    /// Single intra-coded picture
5325    ///
5326    /// FourCC: `1pic`
5327    ///
5328    /// Specification: _HEIF_
5329    pub const ONE_PIC: BrandCode = BrandCode::new(*b"1pic");
5330    /// 3GPP2
5331    ///
5332    /// FourCC: `3g2a`
5333    ///
5334    /// Specification: _3GPP2_
5335    pub const THREE_G2A: BrandCode = BrandCode::new(*b"3g2a");
5336    /// 3GPP Release 6 extended-presentation Profile
5337    ///
5338    /// FourCC: `3ge6`
5339    ///
5340    /// Specification: _3GPP_
5341    pub const THREE_GE6: BrandCode = BrandCode::new(*b"3ge6");
5342    /// 3GPP Release 7 extended-presentation Profile
5343    ///
5344    /// FourCC: `3ge7`
5345    ///
5346    /// Specification: _3GPP_
5347    pub const THREE_GE7: BrandCode = BrandCode::new(*b"3ge7");
5348    /// 3GPP Release 9 Extended Presentation Profile
5349    ///
5350    /// FourCC: `3ge9`
5351    ///
5352    /// Specification: _3GPP_
5353    pub const THREE_GE9: BrandCode = BrandCode::new(*b"3ge9");
5354    /// 3GPP Release 9 File-delivery Server Profile
5355    ///
5356    /// FourCC: `3gf9`
5357    ///
5358    /// Specification: _3GPP_
5359    pub const THREE_GF9: BrandCode = BrandCode::new(*b"3gf9");
5360    /// 3GPP Release 6 General Profile
5361    ///
5362    /// FourCC: `3gg6`
5363    ///
5364    /// Specification: _3GPP_
5365    pub const THREE_GG6: BrandCode = BrandCode::new(*b"3gg6");
5366    /// 3GPP Release 9 General Profile
5367    ///
5368    /// FourCC: `3gg9`
5369    ///
5370    /// Specification: _3GPP_
5371    pub const THREE_GG9: BrandCode = BrandCode::new(*b"3gg9");
5372    /// 3GPP Release 9 Adaptive Streaming Profile
5373    ///
5374    /// FourCC: `3gh9`
5375    ///
5376    /// Specification: _3GPP_
5377    pub const THREE_GH9: BrandCode = BrandCode::new(*b"3gh9");
5378    /// 3GPP Release 9 Media Segment Profile
5379    ///
5380    /// FourCC: `3gm9`
5381    ///
5382    /// Specification: _3GPP_
5383    pub const THREE_GM9: BrandCode = BrandCode::new(*b"3gm9");
5384    /// 3GPP Media Segment conforming to the Media Segment Format for 3GP DASH
5385    ///
5386    /// FourCC: `3gmA`
5387    ///
5388    /// Specification: _3GPP-DASH_
5389    pub const THREE_GMA: BrandCode = BrandCode::new(*b"3gmA");
5390    /// 3GPP Release 4
5391    ///
5392    /// FourCC: `3gp4`
5393    ///
5394    /// Specification: _3GPP_
5395    pub const THREE_GP4: BrandCode = BrandCode::new(*b"3gp4");
5396    /// 3GPP Release 5
5397    ///
5398    /// FourCC: `3gp5`
5399    ///
5400    /// Specification: _3GPP_
5401    pub const THREE_GP5: BrandCode = BrandCode::new(*b"3gp5");
5402    /// 3GPP Release 6 basic Profile
5403    ///
5404    /// FourCC: `3gp6`
5405    ///
5406    /// Specification: _3GPP_
5407    pub const THREE_GP6: BrandCode = BrandCode::new(*b"3gp6");
5408    /// 3GPP Release 7
5409    ///
5410    /// FourCC: `3gp7`
5411    ///
5412    /// Specification: _3GPP_
5413    pub const THREE_GP7: BrandCode = BrandCode::new(*b"3gp7");
5414    /// 3GPP Release 8
5415    ///
5416    /// FourCC: `3gp8`
5417    ///
5418    /// Specification: _3GPP_
5419    pub const THREE_GP8: BrandCode = BrandCode::new(*b"3gp8");
5420    /// 3GPP Release 9 Basic Profile
5421    ///
5422    /// FourCC: `3gp9`
5423    ///
5424    /// Specification: _3GPP_
5425    pub const THREE_GP9: BrandCode = BrandCode::new(*b"3gp9");
5426    /// 3GPP Release 6 progressive-download Profile
5427    ///
5428    /// FourCC: `3gr6`
5429    ///
5430    /// Specification: _3GPP_
5431    pub const THREE_GR6: BrandCode = BrandCode::new(*b"3gr6");
5432    /// 3GPP Release 9 Progressive DownloadProfile
5433    ///
5434    /// FourCC: `3gr9`
5435    ///
5436    /// Specification: _3GPP_
5437    pub const THREE_GR9: BrandCode = BrandCode::new(*b"3gr9");
5438    /// 3GPP Release 6 streaming-server Profile
5439    ///
5440    /// FourCC: `3gs6`
5441    ///
5442    /// Specification: _3GPP_
5443    pub const THREE_GS6: BrandCode = BrandCode::new(*b"3gs6");
5444    /// 3GPP Release 9 Streaming ServerProfile
5445    ///
5446    /// FourCC: `3gs9`
5447    ///
5448    /// Specification: _3GPP_
5449    pub const THREE_GS9: BrandCode = BrandCode::new(*b"3gs9");
5450    /// 3GPP Release 8 Media Stream Recording Profile
5451    ///
5452    /// FourCC: `3gt8`
5453    ///
5454    /// Specification: _3GPP_
5455    pub const THREE_GT8: BrandCode = BrandCode::new(*b"3gt8");
5456    /// 3GPP Release 9 Media Stream Recording Profile
5457    ///
5458    /// FourCC: `3gt9`
5459    ///
5460    /// Specification: _3GPP_
5461    pub const THREE_GT9: BrandCode = BrandCode::new(*b"3gt9");
5462    /// 3GPP TV over 3GPP services
5463    ///
5464    /// FourCC: `3gtv`
5465    ///
5466    /// Specification: _3GPP-TVP_
5467    pub const THREE_GTV: BrandCode = BrandCode::new(*b"3gtv");
5468    /// 3GPP VR Presentation
5469    ///
5470    /// FourCC: `3gvr`
5471    ///
5472    /// Specification: _3GPP-VR_
5473    pub const THREE_GVR: BrandCode = BrandCode::new(*b"3gvr");
5474    /// 3GPP VR Advanced Video Media Profile
5475    ///
5476    /// FourCC: `3vra`
5477    ///
5478    /// Specification: _3GPP-VR_
5479    pub const THREE_VRA: BrandCode = BrandCode::new(*b"3vra");
5480    /// 3GPP VR Basic Video Media Profile
5481    ///
5482    /// FourCC: `3vrb`
5483    ///
5484    /// Specification: _3GPP-VR_
5485    pub const THREE_VRB: BrandCode = BrandCode::new(*b"3vrb");
5486    /// 3GPP VR Main Video Media Profile
5487    ///
5488    /// FourCC: `3vrm`
5489    ///
5490    /// Specification: _3GPP-VR_
5491    pub const THREE_VRM: BrandCode = BrandCode::new(*b"3vrm");
5492    /// Advanced tiling OMAF video profile
5493    ///
5494    /// FourCC: `adti`
5495    ///
5496    /// Specification: _OMAF_
5497    pub const ADTI: BrandCode = BrandCode::new(*b"adti");
5498    /// ID3 metadata carried as timed metadata in CMAF
5499    ///
5500    /// FourCC: `aid3`
5501    ///
5502    /// Specification: _CMAF-ID3_
5503    pub const AID3: BrandCode = BrandCode::new(*b"aid3");
5504    /// ARRI Digital Camera
5505    ///
5506    /// FourCC: `ARRI`
5507    ///
5508    /// Specification: _ARRI_
5509    pub const ARRI: BrandCode = BrandCode::new(*b"ARRI");
5510    /// AOM Video Codec
5511    ///
5512    /// FourCC: `av01`
5513    ///
5514    /// Specification: _AV1-ISOBMFF_
5515    pub const AV01: BrandCode = BrandCode::new(*b"av01");
5516    /// Advanced Video Coding extensions
5517    ///
5518    /// FourCC: `avc1`
5519    ///
5520    /// Specification: _ISO_
5521    pub const AVC1: BrandCode = BrandCode::new(*b"avc1");
5522    /// AVC image and image collection brands
5523    ///
5524    /// FourCC: `avci`
5525    ///
5526    /// Specification: _HEIF_
5527    pub const AVCI: BrandCode = BrandCode::new(*b"avci");
5528    /// AVC image sequence brands
5529    ///
5530    /// FourCC: `avcs`
5531    ///
5532    /// Specification: _HEIF_
5533    pub const AVCS: BrandCode = BrandCode::new(*b"avcs");
5534    /// AVC-based viewport-dependent OMAF video profile
5535    ///
5536    /// FourCC: `avde`
5537    ///
5538    /// Specification: _OMAF_
5539    pub const AVDE: BrandCode = BrandCode::new(*b"avde");
5540    /// AV1 image format brand
5541    ///
5542    /// FourCC: `avif`
5543    ///
5544    /// Specification: _AVIF_
5545    pub const AVIF: BrandCode = BrandCode::new(*b"avif");
5546    /// AV1 intra-only brand
5547    ///
5548    /// FourCC: `avio`
5549    ///
5550    /// Specification: _AVIF_
5551    pub const AVIO: BrandCode = BrandCode::new(*b"avio");
5552    /// AV1 image sequence brand
5553    ///
5554    /// FourCC: `avis`
5555    ///
5556    /// Specification: _AVIF_
5557    pub const AVIS: BrandCode = BrandCode::new(*b"avis");
5558    /// Blinkbox Master File: H.264 video and 16-bit little-endian LPCM audio
5559    ///
5560    /// FourCC: `bbxm`
5561    ///
5562    /// Specification: _Blinkbox_
5563    pub const BBXM: BrandCode = BrandCode::new(*b"bbxm");
5564    /// Canon Digital Camera
5565    ///
5566    /// FourCC: `CAEP`
5567    ///
5568    /// Specification: _Canon_
5569    pub const CAEP: BrandCode = BrandCode::new(*b"CAEP");
5570    /// Convergent Designs
5571    ///
5572    /// FourCC: `CDes`
5573    ///
5574    /// Specification: _Convergent_
5575    pub const CDES: BrandCode = BrandCode::new(*b"CDes");
5576    /// CMAF Media Profile - AC-4 Main
5577    ///
5578    /// FourCC: `ca4m`
5579    ///
5580    /// Specification: _ETSI AC-4_
5581    pub const CA4M: BrandCode = BrandCode::new(*b"ca4m");
5582    /// CMAF Media Profile - AC-4 Single Stream
5583    ///
5584    /// FourCC: `ca4s`
5585    ///
5586    /// Specification: _ETSI AC-4_
5587    pub const CA4S: BrandCode = BrandCode::new(*b"ca4s");
5588    /// CMAF Media Profile - AAC Adaptive Audio
5589    ///
5590    /// FourCC: `caaa`
5591    ///
5592    /// Specification: _CMAF_
5593    pub const CAAA: BrandCode = BrandCode::new(*b"caaa");
5594    /// CMAF Media Profile - AAC Core
5595    ///
5596    /// FourCC: `caac`
5597    ///
5598    /// Specification: _CMAF_
5599    pub const CAAC: BrandCode = BrandCode::new(*b"caac");
5600    /// CMAF Media Profile for OMAF 3D audio baseline profile
5601    ///
5602    /// FourCC: `cabl`
5603    ///
5604    /// Specification: _OMAF_
5605    pub const CABL: BrandCode = BrandCode::new(*b"cabl");
5606    /// CMAF Media Profile - AAC multichannel adaptive audio
5607    ///
5608    /// FourCC: `cama`
5609    ///
5610    /// Specification: _CMAF_
5611    pub const CAMA: BrandCode = BrandCode::new(*b"cama");
5612    /// CMAF Media Profile - AAC multichannel audio
5613    ///
5614    /// FourCC: `camc`
5615    ///
5616    /// Specification: _CMAF_
5617    pub const CAMC: BrandCode = BrandCode::new(*b"camc");
5618    /// Casio Digital Camera
5619    ///
5620    /// FourCC: `caqv`
5621    ///
5622    /// Specification: _Casio_
5623    pub const CAQV: BrandCode = BrandCode::new(*b"caqv");
5624    /// CMAF Media Profile - MPEG-D USAC audio
5625    ///
5626    /// FourCC: `casu`
5627    ///
5628    /// Specification: _CMAF_
5629    pub const CASU: BrandCode = BrandCode::new(*b"casu");
5630    /// CMAF Supplemental Data - CEA-608/708
5631    ///
5632    /// FourCC: `ccea`
5633    ///
5634    /// Specification: _CMAF_
5635    pub const CCEA: BrandCode = BrandCode::new(*b"ccea");
5636    /// Common container file format
5637    ///
5638    /// FourCC: `ccff`
5639    ///
5640    /// Specification: _DECE_
5641    pub const CCFF: BrandCode = BrandCode::new(*b"ccff");
5642    /// CMAF Media Profile - HEVC HDR10 (chd1) with SCTE Dynamic Metadata app #1 (ST2094-10)
5643    ///
5644    /// FourCC: `cdm1`
5645    ///
5646    /// Specification: _SCTE-215-1-1b_
5647    pub const CDM1: BrandCode = BrandCode::new(*b"cdm1");
5648    /// CMAF Media Profile compatibility to HDR10+ (ST2094-40)
5649    ///
5650    /// FourCC: `cdm4`
5651    ///
5652    /// Specification: _SCTE-215-1-1b_
5653    pub const CDM4: BrandCode = BrandCode::new(*b"cdm4");
5654    /// CMAF Media Profile - Enhanced AC-3
5655    ///
5656    /// FourCC: `ceac`
5657    ///
5658    /// Specification: _ETSI AC-3_
5659    pub const CEAC: BrandCode = BrandCode::new(*b"ceac");
5660    /// CMAF Media Profile - AVC HD
5661    ///
5662    /// FourCC: `cfhd`
5663    ///
5664    /// Specification: _CMAF_
5665    pub const CFHD: BrandCode = BrandCode::new(*b"cfhd");
5666    /// CMAF Media Profile - AVC SD
5667    ///
5668    /// FourCC: `cfsd`
5669    ///
5670    /// Specification: _CMAF_
5671    pub const CFSD: BrandCode = BrandCode::new(*b"cfsd");
5672    /// CMAF Media Profile - HEVC HDR10
5673    ///
5674    /// FourCC: `chd1`
5675    ///
5676    /// Specification: _CMAF_
5677    pub const CHD1: BrandCode = BrandCode::new(*b"chd1");
5678    /// CMAF Media Profile - AVC HDHF
5679    ///
5680    /// FourCC: `chdf`
5681    ///
5682    /// Specification: _CMAF_
5683    pub const CHDF: BrandCode = BrandCode::new(*b"chdf");
5684    /// CMAF Media Profile for the HEVC-based viewport-dependent OMAF video profile
5685    ///
5686    /// FourCC: `chev`
5687    ///
5688    /// Specification: _OMAF_
5689    pub const CHEV: BrandCode = BrandCode::new(*b"chev");
5690    /// CMAF High frame rate Media Profile - HEVC HDR10H
5691    ///
5692    /// FourCC: `chd2`
5693    ///
5694    /// Specification: _CMAF_
5695    pub const CHD2: BrandCode = BrandCode::new(*b"chd2");
5696    /// CMAF Media Profile - HEVC HHD10
5697    ///
5698    /// FourCC: `chh1`
5699    ///
5700    /// Specification: _CMAF_
5701    pub const CHH1: BrandCode = BrandCode::new(*b"chh1");
5702    /// CMAF Media Profile - HEVC HHD8
5703    ///
5704    /// FourCC: `chhd`
5705    ///
5706    /// Specification: _CMAF_
5707    pub const CHHD: BrandCode = BrandCode::new(*b"chhd");
5708    /// CMAF Interlaced Media Profile - INT10
5709    ///
5710    /// FourCC: `cint`
5711    ///
5712    /// Specification: _CMAF_
5713    pub const CINT: BrandCode = BrandCode::new(*b"cint");
5714    /// CMAF Media Profile - HEVC HLG10
5715    ///
5716    /// FourCC: `clg1`
5717    ///
5718    /// Specification: _CMAF_
5719    pub const CLG1: BrandCode = BrandCode::new(*b"clg1");
5720    /// CMAF High frame rate Media Profile - HEVC HLG10H
5721    ///
5722    /// FourCC: `clg2`
5723    ///
5724    /// Specification: _CMAF_
5725    pub const CLG2: BrandCode = BrandCode::new(*b"clg2");
5726    /// CMAF Structural Brand
5727    ///
5728    /// FourCC: `cmf2`
5729    ///
5730    /// Specification: _CMAF_
5731    pub const CMF2: BrandCode = BrandCode::new(*b"cmf2");
5732    /// CMAF Structural Brand
5733    ///
5734    /// FourCC: `cmfc`
5735    ///
5736    /// Specification: _CMAF_
5737    pub const CMFC: BrandCode = BrandCode::new(*b"cmfc");
5738    /// CMAF Fragment Format
5739    ///
5740    /// FourCC: `cmff`
5741    ///
5742    /// Specification: _CMAF_
5743    pub const CMFF: BrandCode = BrandCode::new(*b"cmff");
5744    /// CMAF Chunk Format
5745    ///
5746    /// FourCC: `cmfl`
5747    ///
5748    /// Specification: _CMAF_
5749    pub const CMFL: BrandCode = BrandCode::new(*b"cmfl");
5750    /// CMAF Segment Format
5751    ///
5752    /// FourCC: `cmfs`
5753    ///
5754    /// Specification: _CMAF_
5755    pub const CMFS: BrandCode = BrandCode::new(*b"cmfs");
5756    /// CMAF Media Profile - MPEG-H 3D audio LC (mhm2)
5757    ///
5758    /// FourCC: `cmhm`
5759    ///
5760    /// Specification: _CMAF_
5761    pub const CMHM: BrandCode = BrandCode::new(*b"cmhm");
5762    /// CMAF Media Profile - MPEG-H 3D audio LC (mhm1)
5763    ///
5764    /// FourCC: `cmhs`
5765    ///
5766    /// Specification: _CMAF_
5767    pub const CMHS: BrandCode = BrandCode::new(*b"cmhs");
5768    /// Compressed boxes
5769    ///
5770    /// FourCC: `comp`
5771    ///
5772    /// Specification: _ISO_
5773    pub const COMP: BrandCode = BrandCode::new(*b"comp");
5774    /// CMAF Media Profile - Scalable HEVC media profile
5775    ///
5776    /// FourCC: `csh1`
5777    ///
5778    /// Specification: _CMAF_
5779    pub const CSH1: BrandCode = BrandCode::new(*b"csh1");
5780    /// CMAF Media Profile - HEVC UHD10
5781    ///
5782    /// FourCC: `cud1`
5783    ///
5784    /// Specification: _CMAF_
5785    pub const CUD1: BrandCode = BrandCode::new(*b"cud1");
5786    /// CMAF High frame rate Media Profile - HEVC UHD10H
5787    ///
5788    /// FourCC: `cud2`
5789    ///
5790    /// Specification: _CMAF_
5791    pub const CUD2: BrandCode = BrandCode::new(*b"cud2");
5792    /// CMAF Media Profile - HEVC UHD8
5793    ///
5794    /// FourCC: `cud8`
5795    ///
5796    /// Specification: _CMAF_
5797    pub const CUD8: BrandCode = BrandCode::new(*b"cud8");
5798    /// CMAF High frame rate Media Profile - HEVC UHD8H
5799    ///
5800    /// FourCC: `cud9`
5801    ///
5802    /// Specification: _CMAF_
5803    pub const CUD9: BrandCode = BrandCode::new(*b"cud9");
5804    /// CMAF Media Profile for the unconstrained HEVC-based viewport-independent OMAF video profile
5805    ///
5806    /// FourCC: `cuvd`
5807    ///
5808    /// Specification: _OMAF_
5809    pub const CUVD: BrandCode = BrandCode::new(*b"cuvd");
5810    /// CMAF Media Profile for the HEVC-based viewport-independent OMAF video profile
5811    ///
5812    /// FourCC: `cvid`
5813    ///
5814    /// Specification: _OMAF_
5815    pub const CVID: BrandCode = BrandCode::new(*b"cvid");
5816    /// Baseline VVC media profile
5817    ///
5818    /// FourCC: `cvvc`
5819    ///
5820    /// Specification: _CMAF_
5821    pub const CVVC: BrandCode = BrandCode::new(*b"cvvc");
5822    /// CMAF Media Profile - WebVTT
5823    ///
5824    /// FourCC: `cwvt`
5825    ///
5826    /// Specification: _CMAF_
5827    pub const CWVT: BrandCode = BrandCode::new(*b"cwvt");
5828    /// DMB AF audio with MPEG Layer II audio, MOT slide show, DLS, JPG/PNG/MNG images
5829    ///
5830    /// FourCC: `da0a`
5831    ///
5832    /// Specification: _DMB-MAF_
5833    pub const DA0A: BrandCode = BrandCode::new(*b"da0a");
5834    /// DMB AF, extending da0a , with 3GPP timed text, DID, TVA, REL, IPMP
5835    ///
5836    /// FourCC: `da0b`
5837    ///
5838    /// Specification: _DMB-MAF_
5839    pub const DA0B: BrandCode = BrandCode::new(*b"da0b");
5840    /// DMB AF audio with ER-BSAC audio, JPG/PNG/MNG images
5841    ///
5842    /// FourCC: `da1a`
5843    ///
5844    /// Specification: _DMB-MAF_
5845    pub const DA1A: BrandCode = BrandCode::new(*b"da1a");
5846    /// DMB AF, extending da1a, with 3GPP timed text, DID, TVA, REL, IPMP
5847    ///
5848    /// FourCC: `da1b`
5849    ///
5850    /// Specification: _DMB-MAF_
5851    pub const DA1B: BrandCode = BrandCode::new(*b"da1b");
5852    /// DMB AF audio with HE-AAC v2 audio, MOT slide show, DLS, JPG/PNG/MNG images
5853    ///
5854    /// FourCC: `da2a`
5855    ///
5856    /// Specification: _DMB-MAF_
5857    pub const DA2A: BrandCode = BrandCode::new(*b"da2a");
5858    /// DMB AF extending da2a, with 3GPP timed text, DID, TVA, REL, IPMP
5859    ///
5860    /// FourCC: `da2b`
5861    ///
5862    /// Specification: _DMB-MAF_
5863    pub const DA2B: BrandCode = BrandCode::new(*b"da2b");
5864    /// DMB AF audio with HE-AAC, JPG/PNG/MNG images
5865    ///
5866    /// FourCC: `da3a`
5867    ///
5868    /// Specification: _DMB-MAF_
5869    pub const DA3A: BrandCode = BrandCode::new(*b"da3a");
5870    /// DMB AF extending da3a with BIFS, 3GPP timed text, DID, TVA, REL, IPMP
5871    ///
5872    /// FourCC: `da3b`
5873    ///
5874    /// Specification: _DMB-MAF_
5875    pub const DA3B: BrandCode = BrandCode::new(*b"da3b");
5876    /// ISO base media file format file specifically designed for DASH including movie fragments and Segment Index.
5877    ///
5878    /// FourCC: `dash`
5879    ///
5880    /// Specification: _DASH_
5881    pub const DASH: BrandCode = BrandCode::new(*b"dash");
5882    /// Dolby Vision cross-compatible with HDR10
5883    ///
5884    /// FourCC: `db1p`
5885    ///
5886    /// Specification: _Dolby_
5887    pub const DB1P: BrandCode = BrandCode::new(*b"db1p");
5888    /// Dolby Vision cross-compatible with SDR
5889    ///
5890    /// FourCC: `db2g`
5891    ///
5892    /// Specification: _Dolby_
5893    pub const DB2G: BrandCode = BrandCode::new(*b"db2g");
5894    /// Dolby Vision cross-compatible with HLG (VUI =18)
5895    ///
5896    /// FourCC: `db4h`
5897    ///
5898    /// Specification: _Dolby_
5899    pub const DB4H: BrandCode = BrandCode::new(*b"db4h");
5900    /// Dolby Vision cross-compatible with HLG (VUI=14)
5901    ///
5902    /// FourCC: `db4g`
5903    ///
5904    /// Specification: _Dolby_
5905    pub const DB4G: BrandCode = BrandCode::new(*b"db4g");
5906    /// MP4 files with Dolby content (e.g. Dolby AC-4, Dolby Digital Plus, Dolby TrueHD (Dolby MLP))
5907    ///
5908    /// FourCC: `dby1`
5909    ///
5910    /// Specification: _Dolby_
5911    pub const DBY1: BrandCode = BrandCode::new(*b"dby1");
5912    /// DMB AF supporting all the components defined in the specification
5913    ///
5914    /// FourCC: `dmb1`
5915    ///
5916    /// Specification: _DMB-MAF_
5917    pub const DMB1: BrandCode = BrandCode::new(*b"dmb1");
5918    /// Media Segment conforming to the DASH Self-Initializing Media Segment format type for ISO base media file format
5919    ///
5920    /// FourCC: `dsms`
5921    ///
5922    /// Specification: _DASH_
5923    pub const DSMS: BrandCode = BrandCode::new(*b"dsms");
5924    ///  CMAF media profile for audio codecs dtsc dtsh or dtse
5925    ///
5926    /// FourCC: `dts1`
5927    ///
5928    /// Specification: _DTS-HD_
5929    pub const DTS1: BrandCode = BrandCode::new(*b"dts1");
5930    ///  CMAF media profile for audio codec dtsx
5931    ///
5932    /// FourCC: `dts2`
5933    ///
5934    /// Specification: _DTS-UHD_
5935    pub const DTS2: BrandCode = BrandCode::new(*b"dts2");
5936    ///  CMAF media profile for audio codec dtsy
5937    ///
5938    /// FourCC: `dts3`
5939    ///
5940    /// Specification: _DTS-UHD_
5941    pub const DTS3: BrandCode = BrandCode::new(*b"dts3");
5942    /// DMB AF video with AVC video, ER-BSAC audio, BIFS, JPG/PNG/MNG images, TS
5943    ///
5944    /// FourCC: `dv1a`
5945    ///
5946    /// Specification: _DMB-MAF_
5947    pub const DV1A: BrandCode = BrandCode::new(*b"dv1a");
5948    /// DMB AF, extending dv1a, with 3GPP timed text, DID, TVA, REL, IPMP
5949    ///
5950    /// FourCC: `dv1b`
5951    ///
5952    /// Specification: _DMB-MAF_
5953    pub const DV1B: BrandCode = BrandCode::new(*b"dv1b");
5954    /// DMB AF video with AVC video, HE-AACv2 audio, BIFS, JPG/PNG/MNG images, TS
5955    ///
5956    /// FourCC: `dv2a`
5957    ///
5958    /// Specification: _DMB-MAF_
5959    pub const DV2A: BrandCode = BrandCode::new(*b"dv2a");
5960    /// DMB AF extending dv2a, with 3GPP timed text, DID, TVA, REL, IPMP
5961    ///
5962    /// FourCC: `dv2b`
5963    ///
5964    /// Specification: _DMB-MAF_
5965    pub const DV2B: BrandCode = BrandCode::new(*b"dv2b");
5966    /// DMB AF video with AVC video, HE-AAC audio, BIFS, JPG/PNG/MNG images, TS
5967    ///
5968    /// FourCC: `dv3a`
5969    ///
5970    /// Specification: _DMB-MAF_
5971    pub const DV3A: BrandCode = BrandCode::new(*b"dv3a");
5972    /// DMB AF extending dv3a with 3GPP timed text, DID, TVA, REL, IPMP
5973    ///
5974    /// FourCC: `dv3b`
5975    ///
5976    /// Specification: _DMB-MAF_
5977    pub const DV3B: BrandCode = BrandCode::new(*b"dv3b");
5978    /// DVB RTP
5979    ///
5980    /// FourCC: `dvr1`
5981    ///
5982    /// Specification: _DVB_
5983    pub const DVR1: BrandCode = BrandCode::new(*b"dvr1");
5984    /// DVB Transport Stream
5985    ///
5986    /// FourCC: `dvt1`
5987    ///
5988    /// Specification: _DVB_
5989    pub const DVT1: BrandCode = BrandCode::new(*b"dvt1");
5990    /// DxO ONE camera
5991    ///
5992    /// FourCC: `dxo `
5993    ///
5994    /// Specification: _DxO_
5995    pub const DXO: BrandCode = BrandCode::new(*b"dxo ");
5996    /// Event message box present
5997    ///
5998    /// FourCC: `emsg`
5999    ///
6000    /// Specification: _DASH_
6001    pub const EMSG: BrandCode = BrandCode::new(*b"emsg");
6002    /// EVC Baseline coded image
6003    ///
6004    /// FourCC: `evbi`
6005    ///
6006    /// Specification: _HEIF_
6007    pub const EVBI: BrandCode = BrandCode::new(*b"evbi");
6008    /// EVC Baseline coded image sequence
6009    ///
6010    /// FourCC: `evbs`
6011    ///
6012    /// Specification: _HEIF_
6013    pub const EVBS: BrandCode = BrandCode::new(*b"evbs");
6014    /// EVC Main coded image
6015    ///
6016    /// FourCC: `evmi`
6017    ///
6018    /// Specification: _HEIF_
6019    pub const EVMI: BrandCode = BrandCode::new(*b"evmi");
6020    /// EVC Main coded image sequenc
6021    ///
6022    /// FourCC: `evms`
6023    ///
6024    /// Specification: _HEIF_
6025    pub const EVMS: BrandCode = BrandCode::new(*b"evms");
6026    /// HEVC image and image collection brands
6027    ///
6028    /// FourCC: `heic`
6029    ///
6030    /// Specification: _HEIF_
6031    pub const HEIC: BrandCode = BrandCode::new(*b"heic");
6032    /// L-HEVC image and image collection brands
6033    ///
6034    /// FourCC: `heim`
6035    ///
6036    /// Specification: _HEIF_
6037    pub const HEIM: BrandCode = BrandCode::new(*b"heim");
6038    /// L-HEVC image and image collection brands
6039    ///
6040    /// FourCC: `heis`
6041    ///
6042    /// Specification: _HEIF_
6043    pub const HEIS: BrandCode = BrandCode::new(*b"heis");
6044    /// HEVC image and image collection brands
6045    ///
6046    /// FourCC: `heix`
6047    ///
6048    /// Specification: _HEIF_
6049    pub const HEIX: BrandCode = BrandCode::new(*b"heix");
6050    /// OMAF HEVC image profile
6051    ///
6052    /// FourCC: `heoi`
6053    ///
6054    /// Specification: _OMAF_
6055    pub const HEOI: BrandCode = BrandCode::new(*b"heoi");
6056    /// HEVC image sequence brands
6057    ///
6058    /// FourCC: `hevc`
6059    ///
6060    /// Specification: _HEIF_
6061    pub const HEVC: BrandCode = BrandCode::new(*b"hevc");
6062    /// HEVC-based viewport-dependent OMAF video profile
6063    ///
6064    /// FourCC: `hevd`
6065    ///
6066    /// Specification: _OMAF_
6067    pub const HEVD: BrandCode = BrandCode::new(*b"hevd");
6068    /// HEVC-based viewport-independent OMAF video profile
6069    ///
6070    /// FourCC: `hevi`
6071    ///
6072    /// Specification: _OMAF_
6073    pub const HEVI: BrandCode = BrandCode::new(*b"hevi");
6074    /// L-HEVC image sequence brands
6075    ///
6076    /// FourCC: `hevm`
6077    ///
6078    /// Specification: _HEIF_
6079    pub const HEVM: BrandCode = BrandCode::new(*b"hevm");
6080    /// L-HEVC image sequence brands
6081    ///
6082    /// FourCC: `hevs`
6083    ///
6084    /// Specification: _HEIF_
6085    pub const HEVS: BrandCode = BrandCode::new(*b"hevs");
6086    /// HEVC image sequence brands
6087    ///
6088    /// FourCC: `hevx`
6089    ///
6090    /// Specification: _HEIF_
6091    pub const HEVX: BrandCode = BrandCode::new(*b"hevx");
6092    /// L-HEVC explicit reconstruction
6093    ///
6094    /// FourCC: `hvce`
6095    ///
6096    /// Specification: _NALu Video_
6097    pub const HVCE: BrandCode = BrandCode::new(*b"hvce");
6098    /// L-HEVC implicit reconstruction
6099    ///
6100    /// FourCC: `hvci`
6101    ///
6102    /// Specification: _NALu Video_
6103    pub const HVCI: BrandCode = BrandCode::new(*b"hvci");
6104    /// L-HEVC extended explicit reconstruction brand
6105    ///
6106    /// FourCC: `hvcx`
6107    ///
6108    /// Specification: _NALu Video_
6109    pub const HVCX: BrandCode = BrandCode::new(*b"hvcx");
6110    /// HEVC Tile Track
6111    ///
6112    /// FourCC: `hvti`
6113    ///
6114    /// Specification: _NALu Video_
6115    pub const HVTI: BrandCode = BrandCode::new(*b"hvti");
6116    /// The IFE-SD Media Profile
6117    ///
6118    /// FourCC: `ifsd`
6119    ///
6120    /// Specification: _IFE_
6121    pub const IFSD: BrandCode = BrandCode::new(*b"ifsd");
6122    /// The IFE-HSD Media Profile
6123    ///
6124    /// FourCC: `ifhs`
6125    ///
6126    /// Specification: _IFE_
6127    pub const IFHS: BrandCode = BrandCode::new(*b"ifhs");
6128    /// The IFE-HD Media Profile
6129    ///
6130    /// FourCC: `ifhd`
6131    ///
6132    /// Specification: _IFE_
6133    pub const IFHD: BrandCode = BrandCode::new(*b"ifhd");
6134    /// The IFE-HHD10 Media Profile
6135    ///
6136    /// FourCC: `ifhx`
6137    ///
6138    /// Specification: _IFE_
6139    pub const IFHX: BrandCode = BrandCode::new(*b"ifhx");
6140    /// The IFE-HDHDR Media Profile
6141    ///
6142    /// FourCC: `ifhh`
6143    ///
6144    /// Specification: _IFE_
6145    pub const IFHH: BrandCode = BrandCode::new(*b"ifhh");
6146    /// The IFE-UHD10 Media Profile
6147    ///
6148    /// FourCC: `ifhu`
6149    ///
6150    /// Specification: _IFE_
6151    pub const IFHU: BrandCode = BrandCode::new(*b"ifhu");
6152    /// The IFE-HDR10 Media Profile
6153    ///
6154    /// FourCC: `ifhr`
6155    ///
6156    /// Specification: _IFE_
6157    pub const IFHR: BrandCode = BrandCode::new(*b"ifhr");
6158    /// The IFE-AAC Core Media Profile
6159    ///
6160    /// FourCC: `ifaa`
6161    ///
6162    /// Specification: _IFE_
6163    pub const IFAA: BrandCode = BrandCode::new(*b"ifaa");
6164    /// The IFE-AV1-SD Media Profile
6165    ///
6166    /// FourCC: `ifas`
6167    ///
6168    /// Specification: _IFE_
6169    pub const IFAS: BrandCode = BrandCode::new(*b"ifas");
6170    /// The IFE-AV1-HD Media Profile
6171    ///
6172    /// FourCC: `ifah`
6173    ///
6174    /// Specification: _IFE_
6175    pub const IFAH: BrandCode = BrandCode::new(*b"ifah");
6176    /// The IFE-AV1-HDHDR Media Profile
6177    ///
6178    /// FourCC: `ifai`
6179    ///
6180    /// Specification: _IFE_
6181    pub const IFAI: BrandCode = BrandCode::new(*b"ifai");
6182    /// The IFE-AV1-UHD10 Media Profile
6183    ///
6184    /// FourCC: `ifau`
6185    ///
6186    /// Specification: _IFE_
6187    pub const IFAU: BrandCode = BrandCode::new(*b"ifau");
6188    /// The IFE-AV1-HDR10 Media Profile
6189    ///
6190    /// FourCC: `ifav`
6191    ///
6192    /// Specification: _IFE_
6193    pub const IFAV: BrandCode = BrandCode::new(*b"ifav");
6194    /// Apple iFrame Specification, Version 8.1 Jan 2013
6195    ///
6196    /// FourCC: `ifrm`
6197    ///
6198    /// Specification: _Apple_
6199    pub const IFRM: BrandCode = BrandCode::new(*b"ifrm");
6200    /// CMAF Media Profile - IMSC1 Image
6201    ///
6202    /// FourCC: `im1i`
6203    ///
6204    /// Specification: _CMAF_
6205    pub const IM1I: BrandCode = BrandCode::new(*b"im1i");
6206    /// CMAF Media Profile - IMSC1 Text
6207    ///
6208    /// FourCC: `im1t`
6209    ///
6210    /// Specification: _CMAF_
6211    pub const IM1T: BrandCode = BrandCode::new(*b"im1t");
6212    /// CMAF Media Profile - IMSC1.1 Image
6213    ///
6214    /// FourCC: `im2i`
6215    ///
6216    /// Specification: _CMAF_
6217    pub const IM2I: BrandCode = BrandCode::new(*b"im2i");
6218    /// CMAF Media Profile - IMSC1.1 Text
6219    ///
6220    /// FourCC: `im2t`
6221    ///
6222    /// Specification: _CMAF_
6223    pub const IM2T: BrandCode = BrandCode::new(*b"im2t");
6224    /// Files encrypted according to ISMACryp 2.0
6225    ///
6226    /// FourCC: `isc2`
6227    ///
6228    /// Specification: _ISMACryp2_
6229    pub const ISC2: BrandCode = BrandCode::new(*b"isc2");
6230    /// All files based on the 2004 edition of the ISO file format
6231    ///
6232    /// FourCC: `iso2`
6233    ///
6234    /// Specification: _ISO_
6235    pub const ISO2: BrandCode = BrandCode::new(*b"iso2");
6236    /// Version of the ISO file format
6237    ///
6238    /// FourCC: `iso3`
6239    ///
6240    /// Specification: _ISO_
6241    pub const ISO3: BrandCode = BrandCode::new(*b"iso3");
6242    /// Version of the ISO file format
6243    ///
6244    /// FourCC: `iso4`
6245    ///
6246    /// Specification: _ISO_
6247    pub const ISO4: BrandCode = BrandCode::new(*b"iso4");
6248    /// Version of the ISO file format
6249    ///
6250    /// FourCC: `iso5`
6251    ///
6252    /// Specification: _ISO_
6253    pub const ISO5: BrandCode = BrandCode::new(*b"iso5");
6254    /// Version of the ISO file format
6255    ///
6256    /// FourCC: `iso6`
6257    ///
6258    /// Specification: _ISO_
6259    pub const ISO6: BrandCode = BrandCode::new(*b"iso6");
6260    /// Version of the ISO file format
6261    ///
6262    /// FourCC: `iso7`
6263    ///
6264    /// Specification: _ISO_
6265    pub const ISO7: BrandCode = BrandCode::new(*b"iso7");
6266    /// Version of the ISO file format
6267    ///
6268    /// FourCC: `iso8`
6269    ///
6270    /// Specification: _ISO_
6271    pub const ISO8: BrandCode = BrandCode::new(*b"iso8");
6272    /// Version of the ISO file format
6273    ///
6274    /// FourCC: `iso9`
6275    ///
6276    /// Specification: _ISO_
6277    pub const ISO9: BrandCode = BrandCode::new(*b"iso9");
6278    /// Version of the ISO file format
6279    ///
6280    /// FourCC: `isoa`
6281    ///
6282    /// Specification: _ISO_
6283    pub const ISOA: BrandCode = BrandCode::new(*b"isoa");
6284    /// Version of the ISO file format
6285    ///
6286    /// FourCC: `isob`
6287    ///
6288    /// Specification: _ISO_
6289    pub const ISOB: BrandCode = BrandCode::new(*b"isob");
6290    /// Version of the ISO file format
6291    ///
6292    /// FourCC: `isoc`
6293    ///
6294    /// Specification: _ISO_
6295    pub const ISOC: BrandCode = BrandCode::new(*b"isoc");
6296    /// All files based on the ISO Base Media File Format
6297    ///
6298    /// FourCC: `isom`
6299    ///
6300    /// Specification: _ISO_
6301    pub const ISOM: BrandCode = BrandCode::new(*b"isom");
6302    /// JPEG 2000 image and image collections in ISO/IEC 23008-12 files
6303    ///
6304    /// FourCC: `j2ki`
6305    ///
6306    /// Specification: _J2KHEIF_
6307    pub const J2KI: BrandCode = BrandCode::new(*b"j2ki");
6308    /// Motion JPEG 2000 in ISO/IEC 23008-12 files
6309    ///
6310    /// FourCC: `j2ks`
6311    ///
6312    /// Specification: _J2KHEIF_
6313    pub const J2KS: BrandCode = BrandCode::new(*b"j2ks");
6314    /// JPEG 2000 image sequence in ISO/IEC 23008-12 files
6315    ///
6316    /// FourCC: `j2is`
6317    ///
6318    /// Specification: _J2KHEIF_
6319    pub const J2IS: BrandCode = BrandCode::new(*b"j2is");
6320    /// JPEG2000 Profile 0
6321    ///
6322    /// FourCC: `J2P0`
6323    ///
6324    /// Specification: _JPEG2000_
6325    pub const J2P0: BrandCode = BrandCode::new(*b"J2P0");
6326    /// JPEG2000 Profile 1
6327    ///
6328    /// FourCC: `J2P1`
6329    ///
6330    /// Specification: _JPEG2000_
6331    pub const J2P1: BrandCode = BrandCode::new(*b"J2P1");
6332    /// JPEG2000 Part 1
6333    ///
6334    /// FourCC: `jp2 `
6335    ///
6336    /// Specification: _JPEG2000_
6337    pub const JP2: BrandCode = BrandCode::new(*b"jp2 ");
6338    /// JPEG-specific still image brand
6339    ///
6340    /// FourCC: `jpeg`
6341    ///
6342    /// Specification: _HEIF_
6343    pub const JPEG: BrandCode = BrandCode::new(*b"jpeg");
6344    /// JPEG image sequence brands
6345    ///
6346    /// FourCC: `jpgs`
6347    ///
6348    /// Specification: _HEIF_
6349    pub const JPGS: BrandCode = BrandCode::new(*b"jpgs");
6350    /// JPEG 2000 Part 6 Compound Images
6351    ///
6352    /// FourCC: `jpm `
6353    ///
6354    /// Specification: _JPM_
6355    pub const JPM: BrandCode = BrandCode::new(*b"jpm ");
6356    /// OMAF legacy image profile
6357    ///
6358    /// FourCC: `jpoi`
6359    ///
6360    /// Specification: _OMAF_
6361    pub const JPOI: BrandCode = BrandCode::new(*b"jpoi");
6362    /// The JPSearch data interchange format, for the exchange of image collections and respective metadata
6363    ///
6364    /// FourCC: `jpsi`
6365    ///
6366    /// Specification: _JPSearch_
6367    pub const JPSI: BrandCode = BrandCode::new(*b"jpsi");
6368    /// JPEG2000 Part 2
6369    ///
6370    /// FourCC: `jpx `
6371    ///
6372    /// Specification: _JPX_
6373    pub const JPX: BrandCode = BrandCode::new(*b"jpx ");
6374    /// JPEG XR
6375    ///
6376    /// FourCC: `jpxb`
6377    ///
6378    /// Specification: _JPXR_
6379    pub const JPXB: BrandCode = BrandCode::new(*b"jpxb");
6380    /// JPEG XL
6381    ///
6382    /// FourCC: `jxl `
6383    ///
6384    /// Specification: _JPEG XL_
6385    pub const JXL: BrandCode = BrandCode::new(*b"jxl ");
6386    /// Still Image File Format for JPEG XS
6387    ///
6388    /// FourCC: `jxs `
6389    ///
6390    /// Specification: _JPXS_
6391    pub const JXS: BrandCode = BrandCode::new(*b"jxs ");
6392    /// Codestream for JPEG XS
6393    ///
6394    /// FourCC: `jxsc`
6395    ///
6396    /// Specification: _JPXS_
6397    pub const JXSC: BrandCode = BrandCode::new(*b"jxsc");
6398    /// JPEG XS image and image collections for HEIF
6399    ///
6400    /// FourCC: `jxsi`
6401    ///
6402    /// Specification: _JPXS_
6403    pub const JXSI: BrandCode = BrandCode::new(*b"jxsi");
6404    /// JPEG XS image sequences for HEIF
6405    ///
6406    /// FourCC: `jxss`
6407    ///
6408    /// Specification: _JPXS_
6409    pub const JXSS: BrandCode = BrandCode::new(*b"jxss");
6410    /// Leica digital camera
6411    ///
6412    /// FourCC: `LCAG`
6413    ///
6414    /// Specification: _Leica_
6415    pub const LCAG: BrandCode = BrandCode::new(*b"LCAG");
6416    /// L-HEVC Tile Track Explicit brand
6417    ///
6418    /// FourCC: `lhte`
6419    ///
6420    /// Specification: _NALu Video_
6421    pub const LHTE: BrandCode = BrandCode::new(*b"lhte");
6422    /// L-HEVC Tile Track Implicit brand
6423    ///
6424    /// FourCC: `lhti`
6425    ///
6426    /// Specification: _NALu Video_
6427    pub const LHTI: BrandCode = BrandCode::new(*b"lhti");
6428    /// last Media Segment indicator for ISO base media file format.
6429    ///
6430    /// FourCC: `lmsg`
6431    ///
6432    /// Specification: _DASH_
6433    pub const LMSG: BrandCode = BrandCode::new(*b"lmsg");
6434    /// iTunes MPEG-4 audio protected or not, can contain audio + video + 3g text track + chapter track
6435    ///
6436    /// FourCC: `M4A `
6437    ///
6438    /// Specification: _iTunes_
6439    pub const M4A: BrandCode = BrandCode::new(*b"M4A ");
6440    /// iTunes AudioBook protected or not, can contain audio + video + 3g text track + chapter track
6441    ///
6442    /// FourCC: `M4B `
6443    ///
6444    /// Specification: _iTunes_
6445    pub const M4B: BrandCode = BrandCode::new(*b"M4B ");
6446    /// MPEG-4 protected audio
6447    ///
6448    /// FourCC: `M4P `
6449    ///
6450    /// Specification: _iTunes_
6451    pub const M4P: BrandCode = BrandCode::new(*b"M4P ");
6452    /// MPEG-4 protected audio+video
6453    ///
6454    /// FourCC: `M4V `
6455    ///
6456    /// Specification: _iTunes_
6457    pub const M4V: BrandCode = BrandCode::new(*b"M4V ");
6458    /// AVIF Baseline Profile
6459    ///
6460    /// FourCC: `MA1B`
6461    ///
6462    /// Specification: _AVIF_
6463    pub const MA1B: BrandCode = BrandCode::new(*b"MA1B");
6464    /// AVIF Advanced Profile
6465    ///
6466    /// FourCC: `MA1A`
6467    ///
6468    /// Specification: _AVIF_
6469    pub const MA1A: BrandCode = BrandCode::new(*b"MA1A");
6470    /// Media File for Samsung video Metadata
6471    ///
6472    /// FourCC: `MFSM`
6473    ///
6474    /// Specification: _Samsung_
6475    pub const MFSM: BrandCode = BrandCode::new(*b"MFSM");
6476    /// Home and Mobile Multimedia Platform (HMMP)
6477    ///
6478    /// FourCC: `MGSV`
6479    ///
6480    /// Specification: _Sony_
6481    pub const MGSV: BrandCode = BrandCode::new(*b"MGSV");
6482    /// Multi-Image Application format brand for MIAF AVC Basic Profile
6483    ///
6484    /// FourCC: `MiAB`
6485    ///
6486    /// Specification: _MIAF_
6487    pub const MIAB: BrandCode = BrandCode::new(*b"MiAB");
6488    /// Multi-Image Application format brand for fragmented alpha video
6489    ///
6490    /// FourCC: `MiAC`
6491    ///
6492    /// Specification: _MIAF_
6493    pub const MIAC: BrandCode = BrandCode::new(*b"MiAC");
6494    /// Multi-Image Application format brand for general MIAF requirements
6495    ///
6496    /// FourCC: `miaf`
6497    ///
6498    /// Specification: _MIAF_
6499    pub const MIAF: BrandCode = BrandCode::new(*b"miaf");
6500    /// Mutli-Image Application format brand for animation
6501    ///
6502    /// FourCC: `MiAn`
6503    ///
6504    /// Specification: _MIAF_
6505    pub const MIAN: BrandCode = BrandCode::new(*b"MiAn");
6506    /// Multi-Image Application format brand for burst capture
6507    ///
6508    /// FourCC: `MiBu`
6509    ///
6510    /// Specification: _MIAF_
6511    pub const MIBU: BrandCode = BrandCode::new(*b"MiBu");
6512    /// Multi-Image Application format brand for CMAF compatibility
6513    ///
6514    /// FourCC: `MiCm`
6515    ///
6516    /// Specification: _MIAF_
6517    pub const MICM: BrandCode = BrandCode::new(*b"MiCm");
6518    /// Image file format structural brand
6519    ///
6520    /// FourCC: `mif1`
6521    ///
6522    /// Specification: _HEIF_
6523    pub const MIF1: BrandCode = BrandCode::new(*b"mif1");
6524    /// Image file format structural brand CICP alpha and depth
6525    ///
6526    /// FourCC: `mif2`
6527    ///
6528    /// Specification: _HEIF_
6529    pub const MIF2: BrandCode = BrandCode::new(*b"mif2");
6530    /// Multi-Image Application format brand for MIAF HEVC Advanced Profile
6531    ///
6532    /// FourCC: `MiHA`
6533    ///
6534    /// Specification: _MIAF_
6535    pub const MIHA: BrandCode = BrandCode::new(*b"MiHA");
6536    /// Multi-Image Application format brand for MIAF HEVC Basic Profile
6537    ///
6538    /// FourCC: `MiHB`
6539    ///
6540    /// Specification: _MIAF_
6541    pub const MIHB: BrandCode = BrandCode::new(*b"MiHB");
6542    /// Multi-Image Application format brand for MIAF HEVC Extended Profile
6543    ///
6544    /// FourCC: `MiHE`
6545    ///
6546    /// Specification: _MIAF_
6547    pub const MIHE: BrandCode = BrandCode::new(*b"MiHE");
6548    /// Multi-Image Application format brand for progressive decoding and rendering
6549    ///
6550    /// FourCC: `MiPr`
6551    ///
6552    /// Specification: _MIAF_
6553    pub const MIPR: BrandCode = BrandCode::new(*b"MiPr");
6554    /// Motion JPEG 2000 simple profile
6555    ///
6556    /// FourCC: `mj2s`
6557    ///
6558    /// Specification: _MJ2_
6559    pub const MJ2S: BrandCode = BrandCode::new(*b"mj2s");
6560    /// Motion JPEG 2000, general profile
6561    ///
6562    /// FourCC: `mjp2`
6563    ///
6564    /// Specification: _MJ2_
6565    pub const MJP2: BrandCode = BrandCode::new(*b"mjp2");
6566    /// MPEG-21
6567    ///
6568    /// FourCC: `mp21`
6569    ///
6570    /// Specification: _MPEG-21_
6571    pub const MP21: BrandCode = BrandCode::new(*b"mp21");
6572    /// MP4 version 1
6573    ///
6574    /// FourCC: `mp41`
6575    ///
6576    /// Specification: _MP4v2_
6577    pub const MP41: BrandCode = BrandCode::new(*b"mp41");
6578    /// MP4 version 2
6579    ///
6580    /// FourCC: `mp42`
6581    ///
6582    /// Specification: _MP4v2_
6583    pub const MP42: BrandCode = BrandCode::new(*b"mp42");
6584    /// MPEG-7 file-level metadata
6585    ///
6586    /// FourCC: `mp71`
6587    ///
6588    /// Specification: _ISO_
6589    pub const MP71: BrandCode = BrandCode::new(*b"mp71");
6590    /// Photo Player Multimedia Application Format
6591    ///
6592    /// FourCC: `MPPI`
6593    ///
6594    /// Specification: _ISO-MAF_
6595    pub const MPPI: BrandCode = BrandCode::new(*b"MPPI");
6596    /// Compliance with the MMT Processing Unit format
6597    ///
6598    /// FourCC: `mpuf`
6599    ///
6600    /// Specification: _MMT_
6601    pub const MPUF: BrandCode = BrandCode::new(*b"mpuf");
6602    /// Image file format structural brand
6603    ///
6604    /// FourCC: `msf1`
6605    ///
6606    /// Specification: _HEIF_
6607    pub const MSF1: BrandCode = BrandCode::new(*b"msf1");
6608    /// Media Segment conforming to the general format type for ISO base media file format.
6609    ///
6610    /// FourCC: `msdh`
6611    ///
6612    /// Specification: _DASH_
6613    pub const MSDH: BrandCode = BrandCode::new(*b"msdh");
6614    /// Media Segment conforming to the Indexed Media Segment format type for ISO base media file format.
6615    ///
6616    /// FourCC: `msix`
6617    ///
6618    /// Specification: _DASH_
6619    pub const MSIX: BrandCode = BrandCode::new(*b"msix");
6620    /// Portable multimedia CE products using MP4 file format with AVC video codec and AAC audio codec
6621    ///
6622    /// FourCC: `MSNV`
6623    ///
6624    /// Specification: _IEC 62592_
6625    pub const MSNV: BrandCode = BrandCode::new(*b"MSNV");
6626    /// Nikon Digital Camera
6627    ///
6628    /// FourCC: `niko`
6629    ///
6630    /// Specification: _Nikon_
6631    pub const NIKO: BrandCode = BrandCode::new(*b"niko");
6632    /// Non-linear storyline toolset brand
6633    ///
6634    /// FourCC: `nlsl`
6635    ///
6636    /// Specification: _OMAF_
6637    pub const NLSL: BrandCode = BrandCode::new(*b"nlsl");
6638    /// No Leading Picture Sync Brand
6639    ///
6640    /// FourCC: `nras`
6641    ///
6642    /// Specification: _NALu Video_
6643    pub const NRAS: BrandCode = BrandCode::new(*b"nras");
6644    /// OMAF 2D audio legacy profile
6645    ///
6646    /// FourCC: `oa2d`
6647    ///
6648    /// Specification: _OMAF_
6649    pub const OA2D: BrandCode = BrandCode::new(*b"oa2d");
6650    /// OMAF 3D audio baseline profile
6651    ///
6652    /// FourCC: `oabl`
6653    ///
6654    /// Specification: _OMAF_
6655    pub const OABL: BrandCode = BrandCode::new(*b"oabl");
6656    /// OMA DCF (DRM Content Format)
6657    ///
6658    /// FourCC: `odcf`
6659    ///
6660    /// Specification: _OMA DRM 2.0_
6661    pub const ODCF: BrandCode = BrandCode::new(*b"odcf");
6662    /// OMAF viewport-independent baseline presentation profile
6663    ///
6664    /// FourCC: `ompp`
6665    ///
6666    /// Specification: _OMAF_
6667    pub const OMPP: BrandCode = BrandCode::new(*b"ompp");
6668    /// OMA PDCF (DRM Content Format)
6669    ///
6670    /// FourCC: `opf2`
6671    ///
6672    /// Specification: _OMA DRM 2.1_
6673    pub const OPF2: BrandCode = BrandCode::new(*b"opf2");
6674    /// OMA Adapted PDCF
6675    ///
6676    /// FourCC: `opx2`
6677    ///
6678    /// Specification: _OMA DRM XBS_
6679    pub const OPX2: BrandCode = BrandCode::new(*b"opx2");
6680    /// OMAF viewport-dependent baseline presentation profile
6681    ///
6682    /// FourCC: `ovdp`
6683    ///
6684    /// Specification: _OMAF_
6685    pub const OVDP: BrandCode = BrandCode::new(*b"ovdp");
6686    /// Overlay toolset brand
6687    ///
6688    /// FourCC: `ovly`
6689    ///
6690    /// Specification: _OMAF_
6691    pub const OVLY: BrandCode = BrandCode::new(*b"ovly");
6692    /// Generic Partial File
6693    ///
6694    /// FourCC: `paff`
6695    ///
6696    /// Specification: _ISO-Partial_
6697    pub const PAFF: BrandCode = BrandCode::new(*b"paff");
6698    /// Panasonic Digital Camera
6699    ///
6700    /// FourCC: `pana`
6701    ///
6702    /// Specification: _Panasonic_
6703    pub const PANA: BrandCode = BrandCode::new(*b"pana");
6704    /// Protected Interoperable File Format
6705    ///
6706    /// FourCC: `piff`
6707    ///
6708    /// Specification: _PIFF_
6709    pub const PIFF: BrandCode = BrandCode::new(*b"piff");
6710    /// Mixed Partial File
6711    ///
6712    /// FourCC: `pmff`
6713    ///
6714    /// Specification: _ISO-Partial_
6715    pub const PMFF: BrandCode = BrandCode::new(*b"pmff");
6716    /// Panasonic Video Intercom
6717    ///
6718    /// FourCC: `pnvi`
6719    ///
6720    /// Specification: _Panasonic Video Intercom_
6721    pub const PNVI: BrandCode = BrandCode::new(*b"pnvi");
6722    /// Image file format brand for predictively coded image items
6723    ///
6724    /// FourCC: `pred`
6725    ///
6726    /// Specification: _HEIF_
6727    pub const PRED: BrandCode = BrandCode::new(*b"pred");
6728    /// QuickTime
6729    ///
6730    /// FourCC: `qt  `
6731    ///
6732    /// Specification: _QT_
6733    pub const QT: BrandCode = BrandCode::new(*b"qt  ");
6734    /// combination brand to indicate relative addressing
6735    ///
6736    /// FourCC: `relo`
6737    ///
6738    /// Specification: _ISO_
6739    pub const RELO: BrandCode = BrandCode::new(*b"relo");
6740    /// Representation Index Segment used to index MPEG-2 TS based Media Segments.
6741    ///
6742    /// FourCC: `risx`
6743    ///
6744    /// Specification: _DASH_
6745    pub const RISX: BrandCode = BrandCode::new(*b"risx");
6746    /// Ross Video
6747    ///
6748    /// FourCC: `ROSS`
6749    ///
6750    /// Specification: _Ross_
6751    pub const ROSS: BrandCode = BrandCode::new(*b"ROSS");
6752    /// SD Video
6753    ///
6754    /// FourCC: `sdv `
6755    ///
6756    /// Specification: _SDV_
6757    pub const SDV: BrandCode = BrandCode::new(*b"sdv ");
6758    /// Home and Mobile Multimedia Platform (HMMP)
6759    ///
6760    /// FourCC: `SEAU`
6761    ///
6762    /// Specification: _Sony_
6763    pub const SEAU: BrandCode = BrandCode::new(*b"SEAU");
6764    /// Home and Mobile Multimedia Platform (HMMP)
6765    ///
6766    /// FourCC: `SEBK`
6767    ///
6768    /// Specification: _Sony_
6769    pub const SEBK: BrandCode = BrandCode::new(*b"SEBK");
6770    /// Video contents Sony Entertainment Network provides by using MP4 file format
6771    ///
6772    /// FourCC: `senv`
6773    ///
6774    /// Specification: _Sony_
6775    pub const SENV: BrandCode = BrandCode::new(*b"senv");
6776    /// Media Segment conforming to the Sub-Indexed Media Segment format type for ISO base media file format.
6777    ///
6778    /// FourCC: `sims`
6779    ///
6780    /// Specification: _DASH_
6781    pub const SIMS: BrandCode = BrandCode::new(*b"sims");
6782    /// Single Index Segment used to index MPEG-2 TS based Media Segments.
6783    ///
6784    /// FourCC: `sisx`
6785    ///
6786    /// Specification: _DASH_
6787    pub const SISX: BrandCode = BrandCode::new(*b"sisx");
6788    /// HEVC-based simple tiling OMAF video profile
6789    ///
6790    /// FourCC: `siti`
6791    ///
6792    /// Specification: _OMAF_
6793    pub const SITI: BrandCode = BrandCode::new(*b"siti");
6794    /// VVC-based simple tiling OMAF video profile
6795    ///
6796    /// FourCC: `sitv`
6797    ///
6798    /// Specification: _OMAF_
6799    pub const SITV: BrandCode = BrandCode::new(*b"sitv");
6800    /// Dynamic metadata for Single Layer SDR-compatible HDR video streams
6801    ///
6802    /// FourCC: `slh1`
6803    ///
6804    /// Specification: _SL-HDR_
6805    pub const SLH1: BrandCode = BrandCode::new(*b"slh1");
6806    /// Dynamic metadata for Single Layer PQ-based HDR video streams
6807    ///
6808    /// FourCC: `slh2`
6809    ///
6810    /// Specification: _SL-HDR_
6811    pub const SLH2: BrandCode = BrandCode::new(*b"slh2");
6812    /// Dynamic metadata for Single Layer HLG-based HDR video streams
6813    ///
6814    /// FourCC: `slh3`
6815    ///
6816    /// Specification: _SL-HDR_
6817    pub const SLH3: BrandCode = BrandCode::new(*b"slh3");
6818    /// Subsegment Index Segment used to index MPEG-2 TS based Media Segments.
6819    ///
6820    /// FourCC: `ssss`
6821    ///
6822    /// Specification: _DASH_
6823    pub const SSSS: BrandCode = BrandCode::new(*b"ssss");
6824    /// OMAF IMSC1 timed text profile
6825    ///
6826    /// FourCC: `ttml`
6827    ///
6828    /// Specification: _OMAF_
6829    pub const TTML: BrandCode = BrandCode::new(*b"ttml");
6830    /// OMAF WebVTT timed text profile
6831    ///
6832    /// FourCC: `ttwv`
6833    ///
6834    /// Specification: _OMAF_
6835    pub const TTWV: BrandCode = BrandCode::new(*b"ttwv");
6836    /// Unconstrained HEVC-based viewport-independent OMAF video profile
6837    ///
6838    /// FourCC: `uhvi`
6839    ///
6840    /// Specification: _OMAF_
6841    pub const UHVI: BrandCode = BrandCode::new(*b"uhvi");
6842    /// Unified identifiers
6843    ///
6844    /// FourCC: `unif`
6845    ///
6846    /// Specification: _ISO_
6847    pub const UNIF: BrandCode = BrandCode::new(*b"unif");
6848    /// UltraViolet file brand – conforming to the DECE Common File Format spec, Annex E.
6849    ///
6850    /// FourCC: `uvvu`
6851    ///
6852    /// Specification: _DECE_
6853    pub const UVVU: BrandCode = BrandCode::new(*b"uvvu");
6854    /// Multi-track encapsulation mode for V3C data with partial access support
6855    ///
6856    /// FourCC: `v3mp`
6857    ///
6858    /// Specification: _V3C-SYS_
6859    pub const V3MP: BrandCode = BrandCode::new(*b"v3mp");
6860    /// Multi-track encapsulation mode for V3C data
6861    ///
6862    /// FourCC: `v3mt`
6863    ///
6864    /// Specification: _V3C-SYS_
6865    pub const V3MT: BrandCode = BrandCode::new(*b"v3mt");
6866    /// Non-timed encpasulation mode for V3C data
6867    ///
6868    /// FourCC: `v3nt`
6869    ///
6870    /// Specification: _V3C-SYS_
6871    pub const V3NT: BrandCode = BrandCode::new(*b"v3nt");
6872    /// Single-track encapsulation mode for V3C data
6873    ///
6874    /// FourCC: `v3st`
6875    ///
6876    /// Specification: _V3C-SYS_
6877    pub const V3ST: BrandCode = BrandCode::new(*b"v3st");
6878    /// VVC-based viewport-independent OMAF video profile
6879    ///
6880    /// FourCC: `vvci`
6881    ///
6882    /// Specification: _OMAF_
6883    pub const VVCI: BrandCode = BrandCode::new(*b"vvci");
6884    /// VVC coded image item
6885    ///
6886    /// FourCC: `vvic`
6887    ///
6888    /// Specification: _HEIF_
6889    pub const VVIC: BrandCode = BrandCode::new(*b"vvic");
6890    /// VVC coded image sequence
6891    ///
6892    /// FourCC: `vvis`
6893    ///
6894    /// Specification: _HEIF_
6895    pub const VVIS: BrandCode = BrandCode::new(*b"vvis");
6896    /// OMAF VVC image profile
6897    ///
6898    /// FourCC: `vvoi`
6899    ///
6900    /// Specification: _OMAF_
6901    pub const VVOI: BrandCode = BrandCode::new(*b"vvoi");
6902    /// Viewpoint toolset brand
6903    ///
6904    /// FourCC: `vwpt`
6905    ///
6906    /// Specification: _OMAF_
6907    pub const VWPT: BrandCode = BrandCode::new(*b"vwpt");
6908    /// XAVC File Format
6909    ///
6910    /// FourCC: `XAVC`
6911    ///
6912    /// Specification: _Sony_
6913    pub const XAVC: BrandCode = BrandCode::new(*b"XAVC");
6914    /// Google specification for use by YouTube apps
6915    ///
6916    /// FourCC: `yt4 `
6917    ///
6918    /// Specification: _Youtube_
6919    pub const YT4: BrandCode = BrandCode::new(*b"yt4 ");
6920    /// Immersive Audio Model and Formats - Encapsulated IA Sequence
6921    ///
6922    /// FourCC: `iamf`
6923    ///
6924    /// Specification: _AOM-IAMF_
6925    pub const IAMF: BrandCode = BrandCode::new(*b"iamf");
6926    /// Apple HEVC Video with Alpha
6927    ///
6928    /// FourCC: `muxa`
6929    ///
6930    /// Specification: _Apple HEVC Alpha_
6931    pub const MUXA: BrandCode = BrandCode::new(*b"muxa");
6932    /// CMAF Media Profile for Constrained Multilayer VVC
6933    ///
6934    /// FourCC: `cvvm`
6935    ///
6936    /// Specification: _ATSC 3.0 A345_
6937    pub const CVVM: BrandCode = BrandCode::new(*b"cvvm");
6938    /// CMAF Media Profile for ATSC Full Range Constrained Baseline VVC
6939    ///
6940    /// FourCC: `cafr`
6941    ///
6942    /// Specification: _ATSC 3.0 A345_
6943    pub const CAFR: BrandCode = BrandCode::new(*b"cafr");
6944    /// XF-AVC S/XF-HEVC S File Format
6945    ///
6946    /// FourCC: `XFVC`
6947    ///
6948    /// Specification: _Canon_
6949    pub const XFVC: BrandCode = BrandCode::new(*b"XFVC");
6950    /// CMAF Media Profile – AVS3-P3
6951    ///
6952    /// FourCC: `ca3a`
6953    ///
6954    /// Specification: _T-AI-109.7_
6955    pub const CA3A: BrandCode = BrandCode::new(*b"ca3a");
6956    /// CMAF Media Profile for MPEG-5 LCEVC
6957    ///
6958    /// FourCC: `clv1`
6959    ///
6960    /// Specification: _CMAF_
6961    pub const CLV1: BrandCode = BrandCode::new(*b"clv1");
6962    /// Version of the ISO file format
6963    ///
6964    /// FourCC: `isod`
6965    ///
6966    /// Specification: _ISO_
6967    pub const ISOD: BrandCode = BrandCode::new(*b"isod");
6968    /// CMAF EVC Baseline Media Profile
6969    ///
6970    /// FourCC: `cevb`
6971    ///
6972    /// Specification: _CMAF_
6973    pub const CEVB: BrandCode = BrandCode::new(*b"cevb");
6974    /// CMAF EVC Main Media Profile
6975    ///
6976    /// FourCC: `cevm`
6977    ///
6978    /// Specification: _CMAF_
6979    pub const CEVM: BrandCode = BrandCode::new(*b"cevm");
6980    /// CMAF Random Access chunk
6981    ///
6982    /// FourCC: `cmfr`
6983    ///
6984    /// Specification: _CMAF_
6985    pub const CMFR: BrandCode = BrandCode::new(*b"cmfr");
6986    /// MPEG-H audio BL single-stream media profile
6987    ///
6988    /// FourCC: `cmh1`
6989    ///
6990    /// Specification: _CMAF_
6991    pub const CMH1: BrandCode = BrandCode::new(*b"cmh1");
6992    /// MPEG-H audio BL multi-stream media profile
6993    ///
6994    /// FourCC: `cmh2`
6995    ///
6996    /// Specification: _CMAF_
6997    pub const CMH2: BrandCode = BrandCode::new(*b"cmh2");
6998    /// SampleAuxiliaryInformationSizesBox with version 1 and 2
6999    ///
7000    /// FourCC: `saie`
7001    ///
7002    /// Specification: _ISO_
7003    pub const SAIE: BrandCode = BrandCode::new(*b"saie");
7004}
7005impl TrackReferenceCode {
7006    /// Additional audio track
7007    ///
7008    /// FourCC: `adda`
7009    ///
7010    /// Specification: _ISO_
7011    pub const ADDA: TrackReferenceCode = TrackReferenceCode::new(*b"adda");
7012    /// DRC metadata track
7013    ///
7014    /// FourCC: `adrc`
7015    ///
7016    /// Specification: _ISO_
7017    pub const ADRC: TrackReferenceCode = TrackReferenceCode::new(*b"adrc");
7018    /// Auxiliary track reference
7019    ///
7020    /// FourCC: `auxl`
7021    ///
7022    /// Specification: _ISO_
7023    pub const AUXL: TrackReferenceCode = TrackReferenceCode::new(*b"auxl");
7024    /// AVC parameter set stream link
7025    ///
7026    /// FourCC: `avcp`
7027    ///
7028    /// Specification: _NALu Video_
7029    pub const AVCP: TrackReferenceCode = TrackReferenceCode::new(*b"avcp");
7030    /// this track describes the referenced track.
7031    ///
7032    /// FourCC: `cdsc`
7033    ///
7034    /// Specification: _ISO_
7035    pub const CDSC: TrackReferenceCode = TrackReferenceCode::new(*b"cdsc");
7036    /// this track describes the referenced tracks and track groups collectively
7037    ///
7038    /// FourCC: `cdtg`
7039    ///
7040    /// Specification: _OMAF_
7041    pub const CDTG: TrackReferenceCode = TrackReferenceCode::new(*b"cdtg");
7042    /// track containing the depth view
7043    ///
7044    /// FourCC: `deps`
7045    ///
7046    /// Specification: _NALu Video_
7047    pub const DEPS: TrackReferenceCode = TrackReferenceCode::new(*b"deps");
7048    /// this track has an MPEG-4 dependency on the referenced track
7049    ///
7050    /// FourCC: `dpnd`
7051    ///
7052    /// Specification: _MP4v2_
7053    pub const DPND: TrackReferenceCode = TrackReferenceCode::new(*b"dpnd");
7054    /// EVC slice base track
7055    ///
7056    /// FourCC: `evcr`
7057    ///
7058    /// Specification: _NALu Video_
7059    pub const EVCR: TrackReferenceCode = TrackReferenceCode::new(*b"evcr");
7060    /// this track uses fonts carried/defined in the referenced track
7061    ///
7062    /// FourCC: `font`
7063    ///
7064    /// Specification: _ISO_
7065    pub const FONT: TrackReferenceCode = TrackReferenceCode::new(*b"font");
7066    /// Hint dependency
7067    ///
7068    /// FourCC: `hind`
7069    ///
7070    /// Specification: _ISO_
7071    pub const HIND: TrackReferenceCode = TrackReferenceCode::new(*b"hind");
7072    /// links hint track to original media track
7073    ///
7074    /// FourCC: `hint`
7075    ///
7076    /// Specification: _ISO_
7077    pub const HINT: TrackReferenceCode = TrackReferenceCode::new(*b"hint");
7078    /// this track contains IPI declarations for the referenced track
7079    ///
7080    /// FourCC: `ipir`
7081    ///
7082    /// Specification: _MP4v2_
7083    pub const IPIR: TrackReferenceCode = TrackReferenceCode::new(*b"ipir");
7084    /// Audio layer track dependency
7085    ///
7086    /// FourCC: `lyra`
7087    ///
7088    /// Specification: _DTS_
7089    pub const LYRA: TrackReferenceCode = TrackReferenceCode::new(*b"lyra");
7090    /// used in indicating combinations that result into mixed network abstraction layer unit types in a coded picture of VVC
7091    ///
7092    /// FourCC: `mixn`
7093    ///
7094    /// Specification: _NALu Video_
7095    pub const MIXN: TrackReferenceCode = TrackReferenceCode::new(*b"mixn");
7096    /// this track is an OD track which uses the referenced track as an included elementary stream track
7097    ///
7098    /// FourCC: `mpod`
7099    ///
7100    /// Specification: _MP4v2_
7101    pub const MPOD: TrackReferenceCode = TrackReferenceCode::new(*b"mpod");
7102    /// track that contains an 'oref' sample group
7103    ///
7104    /// FourCC: `oref`
7105    ///
7106    /// Specification: _NALu Video_
7107    pub const OREF: TrackReferenceCode = TrackReferenceCode::new(*b"oref");
7108    /// resolved by extracting an indicated subset of the referenced VVC track to reconstruct a VVC bitstream
7109    ///
7110    /// FourCC: `recr`
7111    ///
7112    /// Specification: _NALu Video_
7113    pub const RECR: TrackReferenceCode = TrackReferenceCode::new(*b"recr");
7114    /// HEVC Tile Track
7115    ///
7116    /// FourCC: `sabt`
7117    ///
7118    /// Specification: _NALu Video_
7119    pub const SABT: TrackReferenceCode = TrackReferenceCode::new(*b"sabt");
7120    /// Scalable base
7121    ///
7122    /// FourCC: `sbas`
7123    ///
7124    /// Specification: _NALu Video_
7125    pub const SBAS: TrackReferenceCode = TrackReferenceCode::new(*b"sbas");
7126    /// Scalable extraction
7127    ///
7128    /// FourCC: `scal`
7129    ///
7130    /// Specification: _NALu Video_
7131    pub const SCAL: TrackReferenceCode = TrackReferenceCode::new(*b"scal");
7132    /// reference to a shadow sync sample track
7133    ///
7134    /// FourCC: `shsc`
7135    ///
7136    /// Specification: _OMAF_
7137    pub const SHSC: TrackReferenceCode = TrackReferenceCode::new(*b"shsc");
7138    /// the referenced VVC subpicture tracks or 'alte' track groups of VVC subpicture tracks are used to reconstruct a VVC bitstream
7139    ///
7140    /// FourCC: `subp`
7141    ///
7142    /// Specification: _NALu Video_
7143    pub const SUBP: TrackReferenceCode = TrackReferenceCode::new(*b"subp");
7144    /// subtitle or timed text or overlay graphical information
7145    ///
7146    /// FourCC: `subt`
7147    ///
7148    /// Specification: _ISO_
7149    pub const SUBT: TrackReferenceCode = TrackReferenceCode::new(*b"subt");
7150    /// AVC Switch from
7151    ///
7152    /// FourCC: `swfr`
7153    ///
7154    /// Specification: _NALu Video_
7155    pub const SWFR: TrackReferenceCode = TrackReferenceCode::new(*b"swfr");
7156    /// AVC Switch to
7157    ///
7158    /// FourCC: `swto`
7159    ///
7160    /// Specification: _NALu Video_
7161    pub const SWTO: TrackReferenceCode = TrackReferenceCode::new(*b"swto");
7162    /// this track uses the referenced track as its synchronization source.
7163    ///
7164    /// FourCC: `sync`
7165    ///
7166    /// Specification: _MP4v2_
7167    pub const SYNC: TrackReferenceCode = TrackReferenceCode::new(*b"sync");
7168    /// HEVC Tile track base
7169    ///
7170    /// FourCC: `tbas`
7171    ///
7172    /// Specification: _NALu Video_
7173    pub const TBAS: TrackReferenceCode = TrackReferenceCode::new(*b"tbas");
7174    /// Thumbnail track reference
7175    ///
7176    /// FourCC: `thmb`
7177    ///
7178    /// Specification: _ISO_
7179    pub const THMB: TrackReferenceCode = TrackReferenceCode::new(*b"thmb");
7180    /// Time code. Usually references a time code track.
7181    ///
7182    /// FourCC: `tmcd`
7183    ///
7184    /// Specification: _Apple_
7185    pub const TMCD: TrackReferenceCode = TrackReferenceCode::new(*b"tmcd");
7186    /// V3C atlas track
7187    ///
7188    /// FourCC: `v3cs`
7189    ///
7190    /// Specification: _V3C-SYS_
7191    pub const V3CS: TrackReferenceCode = TrackReferenceCode::new(*b"v3cs");
7192    /// V3C atlas tile track
7193    ///
7194    /// FourCC: `v3ct`
7195    ///
7196    /// Specification: _V3C-SYS_
7197    pub const V3CT: TrackReferenceCode = TrackReferenceCode::new(*b"v3ct");
7198    /// V3C attribute video track
7199    ///
7200    /// FourCC: `v3va`
7201    ///
7202    /// Specification: _V3C-SYS_
7203    pub const V3VA: TrackReferenceCode = TrackReferenceCode::new(*b"v3va");
7204    /// V3C geometry video track
7205    ///
7206    /// FourCC: `v3vg`
7207    ///
7208    /// Specification: _V3C-SYS_
7209    pub const V3VG: TrackReferenceCode = TrackReferenceCode::new(*b"v3vg");
7210    /// V3C occupancy video track
7211    ///
7212    /// FourCC: `v3vo`
7213    ///
7214    /// Specification: _V3C-SYS_
7215    pub const V3VO: TrackReferenceCode = TrackReferenceCode::new(*b"v3vo");
7216    /// Auxiliary video depth
7217    ///
7218    /// FourCC: `vdep`
7219    ///
7220    /// Specification: _ISO_
7221    pub const VDEP: TrackReferenceCode = TrackReferenceCode::new(*b"vdep");
7222    /// Auxiliary video parallax
7223    ///
7224    /// FourCC: `vplx`
7225    ///
7226    /// Specification: _ISO_
7227    pub const VPLX: TrackReferenceCode = TrackReferenceCode::new(*b"vplx");
7228    /// reference to a track that contains a 'vopi' sample group for VVC video
7229    ///
7230    /// FourCC: `vref`
7231    ///
7232    /// Specification: _NALu Video_
7233    pub const VREF: TrackReferenceCode = TrackReferenceCode::new(*b"vref");
7234    /// reference to a VVC operating point entity group
7235    ///
7236    /// FourCC: `vreg`
7237    ///
7238    /// Specification: _NALu Video_
7239    pub const VREG: TrackReferenceCode = TrackReferenceCode::new(*b"vreg");
7240    /// the referenced track is a non video coding layer track of VVC
7241    ///
7242    /// FourCC: `vvcN`
7243    ///
7244    /// Specification: _NALu Video_
7245    pub const VVCN: TrackReferenceCode = TrackReferenceCode::new(*b"vvcN");
7246    /// The referenced tracks provide supplementary video to achieve picture-in-picture functionality
7247    ///
7248    /// FourCC: `supm`
7249    ///
7250    /// Specification: _NALu Video_
7251    pub const SUPM: TrackReferenceCode = TrackReferenceCode::new(*b"supm");
7252    /// associated external stream track
7253    ///
7254    /// FourCC: `aest`
7255    ///
7256    /// Specification: _ISO_
7257    pub const AEST: TrackReferenceCode = TrackReferenceCode::new(*b"aest");
7258    /// Rendering-related metadata
7259    ///
7260    /// FourCC: `rndr`
7261    ///
7262    /// Specification: _Apple_
7263    pub const RNDR: TrackReferenceCode = TrackReferenceCode::new(*b"rndr");
7264}