|
1 |
| -// https://developer.apple.com/library/archive/documentation/QuickTime/QTFF/Metadata/Metadata.html#//apple_ref/doc/uid/TP40000939-CH1-SW35 |
2 |
| - |
3 |
| -/// Reserved for use where no type needs to be indicated |
4 |
| -pub const RESERVED: u32 = 0; |
5 |
| -/// UTF-8 string without any count or NULL terminator |
6 |
| -pub const UTF8: u32 = 1; |
7 |
| -/// A big-endian UTF-16 string |
8 |
| -pub const UTF16: u32 = 2; |
9 |
| -/// Deprecated unless it is needed for special Japanese characters |
10 |
| -pub const S_JIS: u32 = 3; |
11 |
| -/// The UTF-8 variant storage of a string for sorting only |
12 |
| -pub const UTF8_SORT: u32 = 4; |
13 |
| -/// The UTF-16 variant storage of a string for sorting only |
14 |
| -pub const UTF16_SORT: u32 = 5; |
15 |
| -/// A JPEG in a JFIF wrapper |
16 |
| -pub const JPEG: u32 = 13; |
17 |
| -/// A PNG in a PNG wrapper |
18 |
| -pub const PNG: u32 = 14; |
19 |
| -/// A big-endian signed integer in 1,2,3 or 4 bytes |
20 |
| -pub const BE_SIGNED_INTEGER: u32 = 21; |
21 |
| -/// A big-endian unsigned integer in 1,2,3 or 4 bytes; size of value determines integer size |
22 |
| -pub const BE_UNSIGNED_INTEGER: u32 = 22; |
23 |
| -/// A big-endian 32-bit floating point value (IEEE754) |
24 |
| -pub const BE_FLOAT32: u32 = 23; |
25 |
| -/// A big-endian 64-bit floating point value (IEEE754) |
26 |
| -pub const BE_FLOAT64: u32 = 24; |
27 |
| -/// Windows bitmap format graphics |
28 |
| -pub const BMP: u32 = 27; |
29 |
| -/// A QuickTime metadata atom |
30 |
| -pub const QUICKTIME_METADATA: u32 = 28; |
31 |
| -/// An 8-bit signed integer |
32 |
| -pub const SIGNED_8BIT_INTEGER: u32 = 65; |
33 |
| -/// A big-endian 16-bit signed integer |
34 |
| -pub const BE_16BIT_SIGNED_INTEGER: u32 = 66; |
35 |
| -/// A big-endian 32-bit signed integer |
36 |
| -pub const BE_32BIT_SIGNED_INTEGER: u32 = 67; |
37 |
| -/// A block of data representing a two dimensional (2D) point with 32-bit big-endian floating point x and y coordinates. It has the structure: |
38 |
| -/// |
39 |
| -/// ```c |
40 |
| -/// struct { |
41 |
| -/// BEFloat32 x; |
42 |
| -/// BEFloat32 y; |
43 |
| -/// } |
44 |
| -/// ``` |
45 |
| -pub const BE_POINT_F32: u32 = 70; |
46 |
| -/// A block of data representing 2D dimensions with 32-bit big-endian floating point width and height. It has the structure: |
47 |
| -/// |
48 |
| -/// ```c |
49 |
| -/// struct { |
50 |
| -/// BEFloat32 width; |
51 |
| -/// BEFloat32 height; |
52 |
| -/// } |
53 |
| -/// ``` |
54 |
| -pub const BE_DIMENSIONS_F32: u32 = 71; |
55 |
| -/// A block of data representing a 2D rectangle with 32-bit big-endian floating point x and y coordinates and a 32-bit big-endian floating point width and height size. It has the structure: |
56 |
| -/// |
57 |
| -/// ```c |
58 |
| -/// struct { |
59 |
| -/// BEFloat32 x; |
60 |
| -/// BEFloat32 y; |
61 |
| -/// BEFloat32 width; |
62 |
| -/// BEFloat32 height; |
63 |
| -/// } |
64 |
| -/// ``` |
| 1 | +/// Identifiers for flag atoms |
65 | 2 | ///
|
66 |
| -/// or the equivalent structure: |
| 3 | +/// Any identifier in here will be treated as having [`AtomData::Bool`] as its data type when parsing. |
| 4 | +/// See [`Ilst::set_flag`] for more information. |
67 | 5 | ///
|
68 |
| -/// ```c |
69 |
| -/// struct { |
70 |
| -/// PointF32 origin; |
71 |
| -/// DimensionsF32 size; |
72 |
| -/// } |
73 |
| -/// ``` |
74 |
| -pub const BE_RECT_F32: u32 = 72; |
75 |
| -/// A big-endian 64-bit signed integer |
76 |
| -pub const BE_64BIT_SIGNED_INTEGER: u32 = 74; |
77 |
| -/// An 8-bit unsigned integer |
78 |
| -pub const UNSIGNED_8BIT_INTEGER: u32 = 75; |
79 |
| -/// A big-endian 16-bit unsigned integer |
80 |
| -pub const BE_16BIT_UNSIGNED_INTEGER: u32 = 76; |
81 |
| -/// A big-endian 32-bit unsigned integer |
82 |
| -pub const BE_32BIT_UNSIGNED_INTEGER: u32 = 77; |
83 |
| -/// A big-endian 64-bit unsigned integer |
84 |
| -pub const BE_64BIT_UNSIGNED_INTEGER: u32 = 78; |
85 |
| -/// A block of data representing a 3x3 transformation matrix. It has the structure: |
86 |
| -/// |
87 |
| -/// ```c |
88 |
| -/// struct { |
89 |
| -/// BEFloat64 matrix[3][3]; |
90 |
| -/// } |
91 |
| -/// ``` |
92 |
| -pub const AFFINE_TRANSFORM_F64: u32 = 79; |
| 6 | +/// [`AtomData::Bool`]: crate::mp4::AtomData::Bool |
| 7 | +/// [`Ilst::set_flag`]: crate::mp4::Ilst::set_flag |
| 8 | +pub mod flags { |
| 9 | + use crate::mp4::AtomIdent; |
| 10 | + |
| 11 | + /// Podcast flag (`pcst`) |
| 12 | + pub const PODCAST: AtomIdent<'_> = AtomIdent::Fourcc(*b"pcst"); |
| 13 | + /// Gapless playback flag (`pgap`) |
| 14 | + pub const GAPLESS: AtomIdent<'_> = AtomIdent::Fourcc(*b"pgap"); |
| 15 | + /// Show work and movement flag (`shwm`) |
| 16 | + pub const SHOW_WORK: AtomIdent<'_> = AtomIdent::Fourcc(*b"shwm"); |
| 17 | + /// HD video flag (`hdvd`) |
| 18 | + pub const HD_VIDEO: AtomIdent<'_> = AtomIdent::Fourcc(*b"hdvd"); |
| 19 | + /// Compilation flag (`cpil`) |
| 20 | + pub const COMPILATION: AtomIdent<'_> = AtomIdent::Fourcc(*b"cpil"); |
| 21 | +} |
| 22 | + |
| 23 | +pub(crate) const WELL_KNOWN_TYPE_SET: u8 = 0; |
0 commit comments