module Data.ByteString.IsoBaseFileFormat.Boxes.FileType where
import Data.ByteString.IsoBaseFileFormat.Boxes.Box
type FileTypeBox = Box "ftyp"
instance BoxRules "ftyp"
fileTypeBox :: FileType -> FileTypeBox
fileTypeBox = box
data FileType =
FileType {majorBrand :: FourCc
,minorVersion :: Word32
,compatibleBrands :: [FourCc]}
instance IsBoxContent FileType where
boxSize (FileType maj ver comps) = boxSize maj + 4 + sum (boxSize <$> comps)
boxBuilder (FileType maj ver comps) =
boxBuilder maj <> word32BE ver <> mconcat (boxBuilder <$> comps)