module Data.ByteString.IsoBaseFileFormat.Boxes.SpecificMediaHeader where
import Data.ByteString.IsoBaseFileFormat.Boxes.Box
import Data.ByteString.IsoBaseFileFormat.Boxes.BoxFields
import Data.ByteString.IsoBaseFileFormat.Boxes.FullBox
import Data.Default
newtype VideoMediaHeader where
VideoMediaHeader
:: Template (U16 "graphicsmode") 0
:+ Template (U16Arr "opcolor" 3) '[0,0,0]
-> VideoMediaHeader
deriving (Default, IsBoxContent)
videoMediaHeader :: VideoMediaHeader -> Box (FullBox VideoMediaHeader 0)
videoMediaHeader = fullBox 1
instance IsBox VideoMediaHeader
type instance BoxTypeSymbol VideoMediaHeader = "vmhd"
newtype SoundMediaHeader where
SoundMediaHeader
:: Template (I16 "balance") 0
:+ Constant (U16 "reserved") 0
-> SoundMediaHeader
deriving (Default, IsBoxContent)
soundMediaHeader :: SoundMediaHeader -> Box (FullBox SoundMediaHeader 0)
soundMediaHeader = fullBox 0
instance IsBox SoundMediaHeader
type instance BoxTypeSymbol SoundMediaHeader = "smhd"
newtype HintMediaHeader where
HintMediaHeader
:: U16 "maxPDUsize"
:+ U16 "avgPDUsize"
:+ U16 "maxbitrate"
:+ U16 "avgbitrate"
:+ U32 "reserved"
-> HintMediaHeader
deriving (Default, IsBoxContent)
hintMediaHeader :: HintMediaHeader -> Box (FullBox HintMediaHeader 0)
hintMediaHeader = fullBox 0
instance IsBox HintMediaHeader
type instance BoxTypeSymbol HintMediaHeader = "hmhd"
data NullMediaHeader = NullMediaHeader
nullMediaHeader :: Box (FullBox NullMediaHeader 0)
nullMediaHeader = fullBox 0 NullMediaHeader
instance IsBox NullMediaHeader
type instance BoxTypeSymbol NullMediaHeader = "nmhd"
instance Default NullMediaHeader where
def = NullMediaHeader
instance IsBoxContent NullMediaHeader where
boxSize _ = 0
boxBuilder _ = mempty