Struct exr::meta::attribute::TimeCode [−][src]
pub struct TimeCode {
pub hours: u8,
pub minutes: u8,
pub seconds: u8,
pub frame: u8,
pub drop_frame: bool,
pub color_frame: bool,
pub field_phase: bool,
pub binary_group_flags: [bool; 3],
pub binary_groups: [u8; 8],
}
Expand description
Contains time information for this frame within a sequence.
Also defined methods to compile this information into a
TV60
, TV50
or Film24
bit sequence, packed into u32
.
Satisfies the SMPTE standard 12M-1999. For more in-depth information, see philrees.co.uk/timecode.
Fields
hours: u8
Hours 0 - 23 are valid.
minutes: u8
Minutes 0 - 59 are valid.
seconds: u8
Seconds 0 - 59 are valid.
frame: u8
Frame Indices 0 - 29 are valid.
drop_frame: bool
Whether this is a drop frame.
color_frame: bool
Whether this is a color frame.
field_phase: bool
Field Phase.
binary_group_flags: [bool; 3]
Flags for TimeCode.binary_groups
.
binary_groups: [u8; 8]
The user-defined control codes.
Every entry in this array can use at most 3 bits.
This results in a maximum value of 15, including 0, for each u8
.
Implementations
Returns an error if this time code is considered invalid.
Pack the SMPTE time code into a u32 value, according to TV60 packing. This is the encoding which is used within a binary exr file.
Unpack a time code from one TV60 encoded u32 value and the encoded user data. This is the encoding which is used within a binary exr file.
Pack the SMPTE time code into a u32 value, according to TV50 packing.
This encoding does not support the drop_frame
flag, it will be lost.
Unpack a time code from one TV50 encoded u32 value and the encoded user data.
This encoding does not support the drop_frame
flag, it will always be false.
Pack the SMPTE time code into a u32 value, according to FILM24 packing.
This encoding does not support the drop_frame
and color_frame
flags, they will be lost.
Unpack a time code from one TV60 encoded u32 value and the encoded user data.
This encoding does not support the drop_frame
and color_frame
flags, they will always be false
.
Pack the user data u8
array into one u32.
User data values are clamped to the valid range (maximum value is 4).
Write this time code to the byte stream, encoded as TV60 integers.
Returns an Error::Invalid
if the fields are out of the allowed range.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for TimeCode
impl UnwindSafe for TimeCode
Blanket Implementations
Mutably borrows from an owned value. Read more