isobmff-builder-0.11.3.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 => MovieHeader version -> Box (FullBox (MovieHeader version) version) Source #

Construct a MovieHeader box.

newtype 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 :: (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 # 
IsBox (MovieHeader version) Source # 

Associated Types

type BoxContent (MovieHeader version) :: * Source #

Methods

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

type BoxContent (MovieHeader version) Source # 
type BoxContent (MovieHeader version) = MovieHeader version
type BoxTypeSymbol * (MovieHeader v) Source # 
type BoxTypeSymbol * (MovieHeader v) = "mvhd"

type MovieHeaderTimesV0 = MovieHeaderTimes (Scalar Word32) (Template (U32 "duration") 4294967295) Source #

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

type MovieHeaderTimesV1 = MovieHeaderTimes (Scalar Word64) (Template (U64 "duration") 18446744073709551615) Source #

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

type MovieHeaderTimes uint dur = uint "creation_time" :+ (uint "modification_time" :+ (TimeScale :+ dur)) 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.