isobmff-0.14.0.0: A parser and generator for the ISO-14496-12/14 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 :: Nat) 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 # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieHeader

IsBox (MovieHeader version) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieHeader

Associated Types

type BoxContent (MovieHeader version) :: Type Source #

Methods

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

type BoxContent (MovieHeader version) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieHeader

type BoxContent (MovieHeader version) = MovieHeader version
type BoxTypeSymbol (MovieHeader v :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieHeader

type BoxTypeSymbol (MovieHeader v :: Type) = "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.