pub struct TrackHeaderBox {Show 15 fields
pub version: u8,
pub flags: TrackHeaderBoxFlags,
pub creation_time: u64,
pub modification_time: u64,
pub track_id: u32,
pub reserved1: u32,
pub duration: u64,
pub reserved2: u64,
pub layer: i16,
pub alternate_group: i16,
pub volume: FixedI16<U8>,
pub reserved3: u16,
pub matrix: [i32; 9],
pub width: FixedU32<U16>,
pub height: FixedU32<U16>,
}Expand description
Track header box
ISO/IEC 14496-12 - 8.3.2
Fields§
§version: u8An integer that specifies the version of this box.
Part of full box header.
flags: TrackHeaderBoxFlagsThe flags for this box.
Part of full box header.
creation_time: u64An integer that declares the creation time of this track (in seconds since midnight, Jan. 1, 1904, in UTC time).
modification_time: u64An integer that declares the most recent time the track was modified (in seconds since midnight, Jan. 1, 1904, in UTC time).
track_id: u32An integer that uniquely identifies this track over the entire life-time of this presentation;
track_IDs are never re-used and cannot be zero.
reserved1: u32Reserved 32 bits, must be set to 0.
duration: u64An integer that indicates the duration of this track (in the timescale indicated in the
MovieHeaderBox) This duration field may be indefinite (all 1s) when either there is no edit list
and the MediaHeaderBox duration is indefinite (i.e. all 1s), or when an indefinitely repeated edit
list is desired (see subclause 8.6.6 for repeated edits). If there is no edit list and the duration is
not indefinite, then the duration shall be equal to the media duration given in the MediaHeaderBox,
converted into the timescale in the MovieHeaderBox. Otherwise the value of this field is equal to the
sum of the durations of all of the track’s edits (possibly including repetitions).
reserved2: u64Reserved 64 bits, must be set to 0.
layer: i16Specifies the front-to-back ordering of video tracks; tracks with lower numbers are closer to the viewer. 0 is the normal value, and -1 would be in front of track 0, and so on
alternate_group: i16An integer that specifies a group or collection of tracks. If this field is 0 there is no information on possible relations to other tracks. If this field is not 0, it should be the same for tracks that contain alternate data for one another and different for tracks belonging to different such groups. Only one track within an alternate group should be played or streamed at any one time, and shall be distinguishable from other tracks in the group via attributes such as bitrate, codec, language, packet size etc. A group may have only one member.
volume: FixedI16<U8>Specifies the track’s relative audio volume. Full volume is 1.0
and is the normal value. Its value is irrelevant for a purely visual track. Tracks may be composed
by combining them according to their volume, and then using the overall MovieHeaderBox volume
setting; or more complex audio composition (e.g. MPEG-4 BIFS) may be used.
reserved3: u16Reserved 16 bits, must be set to 0.
matrix: [i32; 9]Provides a transformation matrix for the video; (u,v,w) are restricted here to (0,0,1), hex
(0,0,0x40000000).
width: FixedU32<U16>width and height are track-dependent as follows:
For text and subtitle tracks, they may, depending on the coding format, describe the suggested size of
the rendering area. For such tracks, the value 0x0 may also be used to indicate that the data may
be rendered at any size, that no preferred size has been indicated and that the actual size may be
determined by the external context or by reusing the width and height of another track. For those
tracks, the flag TrackSizeIsAspectRatio may also be used.
For non-visual tracks (e.g. audio), they should be set to zero.
For all other tracks, they specify the track’s visual presentation size. These need not be the same as the pixel dimensions of the images, which is documented in the sample description(s); all images in the sequence are scaled to this size, before any overall transformation of the track represented by the matrix. The pixel dimensions of the images are the default values.
height: FixedU32<U16>See width.
Implementations§
Trait Implementations§
Source§impl Debug for TrackHeaderBox
impl Debug for TrackHeaderBox
Source§impl<'a> Deserialize<'a> for TrackHeaderBox
impl<'a> Deserialize<'a> for TrackHeaderBox
Source§fn deserialize<R>(reader: R) -> Result<Self>where
R: ZeroCopyReader<'a>,
fn deserialize<R>(reader: R) -> Result<Self>where
R: ZeroCopyReader<'a>,
Source§impl<'a> DeserializeSeed<'a, BoxHeader> for TrackHeaderBox
impl<'a> DeserializeSeed<'a, BoxHeader> for TrackHeaderBox
Source§fn deserialize_seed<R>(reader: R, _seed: BoxHeader) -> Result<Self>where
R: ZeroCopyReader<'a>,
fn deserialize_seed<R>(reader: R, _seed: BoxHeader) -> Result<Self>where
R: ZeroCopyReader<'a>,
Source§impl IsoBox for TrackHeaderBox
impl IsoBox for TrackHeaderBox
Source§fn add_header_size(payload_size: usize) -> usize
fn add_header_size(payload_size: usize) -> usize
Source§fn box_header(&self) -> BoxHeader
fn box_header(&self) -> BoxHeader
BoxHeader for this box.Source§fn serialize_box_header<W>(&self, writer: W) -> Result<()>where
W: Write,
fn serialize_box_header<W>(&self, writer: W) -> Result<()>where
W: Write,
IsoBox::box_header to the given writer.