Safe Haskell | None |
---|---|
Language | Haskell2010 |
Full Boxes
- data FullBox version t
- fullBox :: (IsBoxType' t, ValidBoxes t ts, BoxContent t ~ FullBox version c) => BoxVersion version -> BoxFlags 24 -> c -> Boxes ts -> Box' t
- closedFullBox :: (IsBoxType' t, ValidBoxes t '[], BoxContent t ~ FullBox version c) => BoxVersion version -> BoxFlags 24 -> c -> Box' t
- type BoxVersion v = Template (U8 "fullbox-version") v
- newtype BoxFlags bits = BoxFlags Integer
- data Versioned v0 v1 version where
- V0 :: IsBoxContent v0 => v0 -> Versioned v0 v1 0
- V1 :: IsBoxContent v1 => v1 -> Versioned v0 v1 1
Documentation
data FullBox version t Source #
A FullBox
contains an extra version and a flags field. In this
implementation it is wrapped around the rest of the box content. This
enforces that the FullBox
header fields are always at the beginning - at
least as long as this module hides the FullBox
constructor ;)
(KnownNat version, IsBoxContent t) => IsBoxContent (FullBox Nat version t) Source # | |
fullBox :: (IsBoxType' t, ValidBoxes t ts, BoxContent t ~ FullBox version c) => BoxVersion version -> BoxFlags 24 -> c -> Boxes ts -> Box' t Source #
Create a FullBox
from a BoxVersion
and BoxFlags
closedFullBox :: (IsBoxType' t, ValidBoxes t '[], BoxContent t ~ FullBox version c) => BoxVersion version -> BoxFlags 24 -> c -> Box' t Source #
Create a FullBox
from a BoxVersion
and BoxFlags
without nested boxes.
type BoxVersion v = Template (U8 "fullbox-version") v Source #
The box version (in a FullBox
) is a single byte
newtype BoxFlags bits Source #
In addition to a BoxVersion
there can be 24 bits for custom flags etc in
a FullBox
.
data Versioned v0 v1 version where Source #
Two alternative representations based on a version index. Use this for box content that can be either 32 or 64 bit.
V0 :: IsBoxContent v0 => v0 -> Versioned v0 v1 0 | |
V1 :: IsBoxContent v1 => v1 -> Versioned v0 v1 1 |
IsBoxContent (Versioned v0 v1 version) Source # | |