Safe Haskell | None |
---|---|
Language | Haskell2010 |
Meta data for a presentation of a movie.
- movieBox :: ValidBoxes (Movie version) ts => Boxes ts -> Box' (Movie version)
- data Movie version
- movieHeaderBox :: KnownNat version => MovieHeader version -> Box' (MovieHeader version)
- data MovieHeader version where
- MovieHeader :: KnownNat version => (((((((Versioned MovieHeaderTimesV0 MovieHeaderTimesV1 version :+ Template (I32 "rate") 65536) :+ Template (I16 "volume") 256) :+ Constant (I16 "reserved") 0) :+ Constant (I32Arr "reserved" 2) '[0, 0]) :+ Constant (I32Arr "matrix" 9) '[65536, 0, 0, 0, 65536, 0, 0, 0, 1073741824]) :+ Template (U32Arr "pre_defined" 6) '[0, 0, 0, 0, 0, 0]) :+ U32 "next_track_ID") -> MovieHeader version
- type MovieHeaderTimesV0 = MovieHeaderTimes (Scalar Word32)
- type MovieHeaderTimesV1 = MovieHeaderTimes (Scalar Word64)
- type MovieHeaderTimes uint = ((uint "creation_time" :+ uint "modification_time") :+ U32 "timescale") :+ uint "duration"
- track :: ValidBoxes (Track version) ts => Boxes ts -> Box' (Track version)
- data Track version
- trackHeader :: KnownNat version => TrackHeader version -> Box' (TrackHeader version)
- data TrackHeader version where
- TrackHeader :: ((((((((Versioned TrackHeaderTimesV0 TrackHeaderTimesV1 version :+ Constant (I32Arr "reserved" 2) '[0, 0]) :+ Template (I16 "layer") 0) :+ Template (I16 "alternate_group") 0) :+ Template (I16 "volume") 256) :+ Constant (I16 "reserved") 0) :+ Template (I32Arr "matrix" 9) '[65536, 0, 0, 0, 65536, 0, 0, 0, 1073741824]) :+ I32 "width") :+ I32 "height") -> TrackHeader version
- type TrackHeaderTimesV0 = TrackHeaderTimes (Scalar Word32)
- type TrackHeaderTimesV1 = TrackHeaderTimes (Scalar Word64)
- type TrackHeaderTimes uint = (((uint "creation_time" :+ uint "modification_time") :+ U32 "track_ID") :+ Constant (U32 "reserved") 0) :+ uint "duration"
Documentation
movieBox :: ValidBoxes (Movie version) ts => Boxes ts -> Box' (Movie version) Source #
Compose a set of boxes into a MovieBox
Example:
xxx :: Box' Movie xxx = movieBox $ Nested (movieHeaderBox (...)) :. (trackBox $ Nested (trackHeaderBox (TrackHeader ...)) :. trackReferenceBox (TrackReference ...) :. trackGroupingIndication (TrackGroupingInd ...))
The metadata for a presentation, a single Movie
which occurs only once
and top-level. It is pretty empty on it's own, but it contains nested boxes
with all the relevant meta data.
BoxRules * (Movie version) Source # | |
IsBoxType' * (Movie version) Source # | |
type RestrictedTo * (Movie version) Source # | |
type IsTopLevelBox * (Movie version) Source # | |
type RequiredNestedBoxes * (Movie version) Source # | |
type BoxContent * (Movie version) Source # | |
type GetCardinality * (Movie version) c Source # | |
mvhd
Box
movieHeaderBox :: KnownNat version => MovieHeader version -> Box' (MovieHeader version) Source #
Construct a MovieHeader
box.
data MovieHeader version where Source #
Movie meta data, indexed by a version.
MovieHeader :: KnownNat version => (((((((Versioned MovieHeaderTimesV0 MovieHeaderTimesV1 version :+ Template (I32 "rate") 65536) :+ Template (I16 "volume") 256) :+ Constant (I16 "reserved") 0) :+ Constant (I32Arr "reserved" 2) '[0, 0]) :+ Constant (I32Arr "matrix" 9) '[65536, 0, 0, 0, 65536, 0, 0, 0, 1073741824]) :+ Template (U32Arr "pre_defined" 6) '[0, 0, 0, 0, 0, 0]) :+ U32 "next_track_ID") -> MovieHeader version |
IsBoxContent (MovieHeader version) Source # | |
BoxRules * (MovieHeader version) Source # | |
KnownNat version => IsBoxType' * (MovieHeader version) Source # | |
type RestrictedTo * (MovieHeader version) Source # | |
type IsTopLevelBox * (MovieHeader version) Source # | |
type RequiredNestedBoxes * (MovieHeader version) Source # | |
type BoxContent * (MovieHeader version) Source # | |
type GetCardinality * (MovieHeader version) any Source # | |
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") :+ U32 "timescale") :+ uint "duration" Source #
Time and timing information about a movie.
trak
Box
track :: ValidBoxes (Track version) ts => Boxes ts -> Box' (Track version) Source #
Compose a Track
box from the given boxes.
Container box for tracks.
BoxRules * (Track version) Source # | |
IsBoxType' * (Track version) Source # | |
type RestrictedTo * (Track version) Source # | |
type IsTopLevelBox * (Track version) Source # | |
type RequiredNestedBoxes * (Track version) Source # | |
type BoxContent * (Track version) Source # | |
type GetCardinality * (Track version) any Source # | |
tkhd
Box
trackHeader :: KnownNat version => TrackHeader version -> Box' (TrackHeader version) Source #
Create a TrackHeader
box.
data TrackHeader version where Source #
Track meta data, indexed by a version.
TrackHeader :: ((((((((Versioned TrackHeaderTimesV0 TrackHeaderTimesV1 version :+ Constant (I32Arr "reserved" 2) '[0, 0]) :+ Template (I16 "layer") 0) :+ Template (I16 "alternate_group") 0) :+ Template (I16 "volume") 256) :+ Constant (I16 "reserved") 0) :+ Template (I32Arr "matrix" 9) '[65536, 0, 0, 0, 65536, 0, 0, 0, 1073741824]) :+ I32 "width") :+ I32 "height") -> TrackHeader version |
IsBoxContent (TrackHeader version) Source # | |
BoxRules * (TrackHeader version) Source # | |
KnownNat version => IsBoxType' * (TrackHeader version) Source # | |
type RestrictedTo * (TrackHeader version) Source # | |
type IsTopLevelBox * (TrackHeader version) Source # | |
type RequiredNestedBoxes * (TrackHeader version) Source # | |
type BoxContent * (TrackHeader version) Source # | |
type GetCardinality * (TrackHeader version) any Source # | |
type TrackHeaderTimesV0 = TrackHeaderTimes (Scalar Word32) Source #
Time and timing information about a track (32bit version).
type TrackHeaderTimesV1 = TrackHeaderTimes (Scalar Word64) Source #
Time and timing information about a track (64bit version).