module Data.ByteString.IsoBaseFileFormat.Boxes.FileType where
import Data.ByteString.IsoBaseFileFormat.Box
import Data.ByteString.IsoBaseFileFormat.ReExports
instance IsBox FileType where
type BoxContent FileType = FileType
type instance BoxTypeSymbol FileType = "ftyp"
fileTypeBox :: FileType -> Box FileType
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)