isobmff-builder-0.9.0.0: A (bytestring-) builder for the ISO-14496-12 base media file format

Safe HaskellNone
LanguageHaskell2010

Data.ByteString.IsoBaseFileFormat.Boxes.MovieHeader

Contents

Description

Meta data for a presentation of a movie.

Synopsis

mvhd Box

movieHeader :: (KnownNat version, ValidBox brand (MovieHeader version)) => MovieHeader version -> Box brand (MovieHeader version) Source #

Construct a MovieHeader box.

data MovieHeader version where Source #

Movie meta data, indexed by a version.

The rate field is a 16.16 fix point number, 1.0 indicates the preferred normal playback rate. volume is also a fix point number, albeit smaller with only 8.8. A volume of 1.0 is the full (loudest) volume. matrix is the video image transformation matrix. The next_track_ID indicates the next available track id, if the track ID is (0xFFFFFFFF) then the system must search through all tracks associated with this presentation and figure it out, 0 is not allowed.

Constructors

MovieHeader :: KnownNat version => (Timing version :+ (Template (I32 "rate") 65536 :+ (Template (I16 "volume") 256 :+ (Constant (I16 "reserved") 0 :+ (Constant (I32Arr "reserved" 2) '[0, 0] :+ (Template (I32Arr "matrix" 9) '[65536, 0, 0, 0, 65536, 0, 0, 0, 1073741824] :+ (Template (U32Arr "pre_defined" 6) '[0, 0, 0, 0, 0, 0] :+ Template (U32 "next_track_ID") 4294967295))))))) -> MovieHeader version 

Instances

IsBoxContent (MovieHeader version) Source # 
KnownNat version => IsBoxType * (MovieHeader version) Source # 

Associated Types

type BoxContent (MovieHeader version) (t :: MovieHeader version) :: * Source #

Methods

toBoxType :: proxy t -> BoxContent (MovieHeader version) t -> BoxType Source #

type BoxContent * (MovieHeader version) Source # 
type BoxContent * (MovieHeader version) = FullBox Nat version (MovieHeader version)

type MovieHeaderTimesV0 = MovieHeaderTimes (Scalar Word32) Source #

Time and timing information about a movie (32bit version).

type MovieHeaderTimesV1 = MovieHeaderTimes (Scalar Word64) Source #

Time and timing information about a movie (64bit version).

type MovieHeaderTimes uint = uint "creation_time" :+ (uint "modification_time" :+ (TimeScale :+ uint "duration")) Source #

Time and timing information about a movie.

The creation/modification times are in seconds since midnight, Jan. 1, 1904, in UTC time. Time scale declares the time coordinate system, it specifies the number of time units that pass one second. The time coordinate system is used by e.g. the duration field, which by the way contains the duration of the longest track, if known, or simply the equivalent of 1s.