Safe Haskell | None |
---|---|
Language | Haskell2010 |
Full Boxes
- data FullBox version t where
- FullBox :: BoxVersion version -> BoxFlags 24 -> t -> FullBox version t
- fullBox :: (IsBoxType t, ValidContainerBox brand t ts, BoxContent t ~ FullBox version c) => BoxVersion version -> BoxFlags 24 -> c -> Boxes brand ts -> Box brand t
- closedFullBox :: (IsBoxType t, ValidBox brand t, BoxContent t ~ FullBox version c) => BoxVersion version -> BoxFlags 24 -> c -> Box brand t
- type BoxVersion v = Template (U8 "fullbox-version") v
- newtype BoxFlags bits = BoxFlags Integer
Documentation
data FullBox version t where 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 ;)
FullBox :: BoxVersion version -> BoxFlags 24 -> t -> FullBox version t |
(KnownNat version, IsBoxContent t) => IsBoxContent (FullBox Nat version t) Source # | |
fullBox :: (IsBoxType t, ValidContainerBox brand t ts, BoxContent t ~ FullBox version c) => BoxVersion version -> BoxFlags 24 -> c -> Boxes brand ts -> Box brand t Source #
Create a FullBox
from a BoxVersion
and BoxFlags
closedFullBox :: (IsBoxType t, ValidBox brand t, BoxContent t ~ FullBox version c) => BoxVersion version -> BoxFlags 24 -> c -> Box brand 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
.