isobmff-0.13.0.0: A parser and generator for the ISO-14496-12/14 base media file format

Safe HaskellNone
LanguageHaskell2010

Data.ByteString.IsoBaseFileFormat.Box

Contents

Description

Definition of the most basic element in an ISOBMFF file: a box. See Chapter 4 in the standard document. A box is a container with a type, a size, some data and some nested boxes. The standard defines - among other characteristics - available box types and their semantics, the fields they contain and how they are nested into each other. This library tries to capture some of these characteristics using modern Haskell type system features, in order to provide compile time checks for (partial) standard compliance.

Synopsis

Box Type Classes

class (KnownSymbol (BoxTypeSymbol t), IsBoxContent (BoxContent t)) => IsBox (t :: Type) where Source #

Base class for all (abstractphantomnormal-) types that represent boxes

Minimal complete definition

Nothing

Associated Types

type BoxContent t Source #

Methods

toBoxType :: proxy t -> BoxType Source #

Instances
IsBox Esd Source # 
Instance details

Defined in Data.ByteString.Mp4.Boxes.ElementaryStreamDescriptor

Associated Types

type BoxContent Esd :: Type Source #

Methods

toBoxType :: proxy Esd -> BoxType Source #

IsBox TrackRun Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackRun

Associated Types

type BoxContent TrackRun :: Type Source #

Methods

toBoxType :: proxy TrackRun -> BoxType Source #

IsBox TrackFragmentHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackFragmentHeader

Associated Types

type BoxContent TrackFragmentHeader :: Type Source #

IsBox TrackFragment Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackFragment

Associated Types

type BoxContent TrackFragment :: Type Source #

IsBox TrackExtends Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackExtends

Associated Types

type BoxContent TrackExtends :: Type Source #

IsBox Track Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.Track

Associated Types

type BoxContent Track :: Type Source #

Methods

toBoxType :: proxy Track -> BoxType Source #

IsBox TimeToSampleTable Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TimeToSample

Associated Types

type BoxContent TimeToSampleTable :: Type Source #

IsBox Skip Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.Skip

Associated Types

type BoxContent Skip :: Type Source #

Methods

toBoxType :: proxy Skip -> BoxType Source #

IsBox SegmentType Source #

Segment Type Box

Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SegmentType

Associated Types

type BoxContent SegmentType :: Type Source #

Methods

toBoxType :: proxy SegmentType -> BoxType Source #

IsBox SampleToChunkTable Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SampleToChunk

Associated Types

type BoxContent SampleToChunkTable :: Type Source #

IsBox SampleTable Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SampleTable

Associated Types

type BoxContent SampleTable :: Type Source #

Methods

toBoxType :: proxy SampleTable -> BoxType Source #

IsBox SampleSizeTable Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SampleSize

Associated Types

type BoxContent SampleSizeTable :: Type Source #

IsBox SampleDescription Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SampleDescription

Associated Types

type BoxContent SampleDescription :: Type Source #

IsBox ProgressiveDownload Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.ProgressiveDownloadInformation

Associated Types

type BoxContent ProgressiveDownload :: Type Source #

IsBox NullMediaHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.NullMediaHeader

Associated Types

type BoxContent NullMediaHeader :: Type Source #

IsBox MovieFragmentHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieFragmentHeader

Associated Types

type BoxContent MovieFragmentHeader :: Type Source #

IsBox MovieFragment Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieFragment

Associated Types

type BoxContent MovieFragment :: Type Source #

IsBox MovieExtends Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieExtends

Associated Types

type BoxContent MovieExtends :: Type Source #

IsBox Movie Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.Movie

Associated Types

type BoxContent Movie :: Type Source #

Methods

toBoxType :: proxy Movie -> BoxType Source #

IsBox MediaInformation Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MediaInformation

Associated Types

type BoxContent MediaInformation :: Type Source #

IsBox MediaData Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MediaData

Associated Types

type BoxContent MediaData :: Type Source #

Methods

toBoxType :: proxy MediaData -> BoxType Source #

IsBox Media Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.Media

Associated Types

type BoxContent Media :: Type Source #

Methods

toBoxType :: proxy Media -> BoxType Source #

IsBox SomeColourInformation Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VisualSampleEntry

Associated Types

type BoxContent SomeColourInformation :: Type Source #

IsBox PixelAspectRatio Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VisualSampleEntry

Associated Types

type BoxContent PixelAspectRatio :: Type Source #

IsBox CleanAperture Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VisualSampleEntry

Associated Types

type BoxContent CleanAperture :: Type Source #

IsBox VideoMediaHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VideoMediaHeader

Associated Types

type BoxContent VideoMediaHeader :: Type Source #

IsBox SoundMediaHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SoundMediaHeader

Associated Types

type BoxContent SoundMediaHeader :: Type Source #

IsBox BitRate Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MetaDataSampleEntry

Associated Types

type BoxContent BitRate :: Type Source #

Methods

toBoxType :: proxy BitRate -> BoxType Source #

IsBox UriInitField Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MetaDataSampleEntry

Associated Types

type BoxContent UriInitField :: Type Source #

IsBox UriField Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MetaDataSampleEntry

Associated Types

type BoxContent UriField :: Type Source #

Methods

toBoxType :: proxy UriField -> BoxType Source #

IsBox HintMediaHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.HintMediaHeader

Associated Types

type BoxContent HintMediaHeader :: Type Source #

IsBox FileType Source #

File Type Box

Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.FileType

Associated Types

type BoxContent FileType :: Type Source #

Methods

toBoxType :: proxy FileType -> BoxType Source #

IsBox DataInformation Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.DataInformation

Associated Types

type BoxContent DataInformation :: Type Source #

IsBox DataEntryUrn Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.DataEntryUrn

Associated Types

type BoxContent DataEntryUrn :: Type Source #

IsBox DataEntryUrl Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.DataEntryUrl

Associated Types

type BoxContent DataEntryUrl :: Type Source #

IsBox DataReference Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.DataReference

Associated Types

type BoxContent DataReference :: Type Source #

IsBox ChunkOffsetTable64 Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.ChunkOffset

Associated Types

type BoxContent ChunkOffsetTable64 :: Type Source #

IsBox ChunkOffsetTable32 Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.ChunkOffset

Associated Types

type BoxContent ChunkOffsetTable32 :: Type Source #

IsBox b => IsBox (Box b) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

Associated Types

type BoxContent (Box b) :: Type Source #

Methods

toBoxType :: proxy (Box b) -> BoxType Source #

IsBox (TrackHeader v) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackHeader

Associated Types

type BoxContent (TrackHeader v) :: Type Source #

Methods

toBoxType :: proxy (TrackHeader v) -> BoxType Source #

IsBox (TrackFragBaseMediaDecodeTime v) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackFragBaseMediaDecodeTime

IsBox (MovieHeader version) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieHeader

Associated Types

type BoxContent (MovieHeader version) :: Type Source #

Methods

toBoxType :: proxy (MovieHeader version) -> BoxType Source #

IsBox (MovieExtendsHeader version) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieExtendsHeader

Associated Types

type BoxContent (MovieExtendsHeader version) :: Type Source #

Methods

toBoxType :: proxy (MovieExtendsHeader version) -> BoxType Source #

IsBox (MediaHeader v) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MediaHeader

Associated Types

type BoxContent (MediaHeader v) :: Type Source #

Methods

toBoxType :: proxy (MediaHeader v) -> BoxType Source #

KnownSymbol (HandlerTypeCode t) => IsBox (Handler t) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.Handler

Associated Types

type BoxContent (Handler t) :: Type Source #

Methods

toBoxType :: proxy (Handler t) -> BoxType Source #

(IsBoxContent handlertype, KnownSymbol (BoxTypeSymbol handlertype)) => IsBox (SampleEntry handlertype) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SampleEntry

Associated Types

type BoxContent (SampleEntry handlertype) :: Type Source #

Methods

toBoxType :: proxy (SampleEntry handlertype) -> BoxType Source #

IsBox b => IsBox (ContainerBox b bs) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

Associated Types

type BoxContent (ContainerBox b bs) :: Type Source #

Methods

toBoxType :: proxy (ContainerBox b bs) -> BoxType Source #

(KnownNat v, IsBox t) => IsBox (FullBox t v) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.FullBox

Associated Types

type BoxContent (FullBox t v) :: Type Source #

Methods

toBoxType :: proxy (FullBox t v) -> BoxType Source #

type family BoxTypeSymbol (t :: k) :: Symbol Source #

A type family used by the type-level consistency checks. It is required that an instance of this type family exists for every IsBox instance. This family could not be associative since it is used by type families that cannot have type class constraints.

Instances
type BoxTypeSymbol Esd Source # 
Instance details

Defined in Data.ByteString.Mp4.Boxes.ElementaryStreamDescriptor

type BoxTypeSymbol Esd = "esds"
type BoxTypeSymbol TrackRun Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackRun

type BoxTypeSymbol TrackRun = "trun"
type BoxTypeSymbol TrackFragmentHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackFragmentHeader

type BoxTypeSymbol TrackFragment Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackFragment

type BoxTypeSymbol TrackExtends Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackExtends

type BoxTypeSymbol Track Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.Track

type BoxTypeSymbol Track = "trak"
type BoxTypeSymbol TimeToSampleTable Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TimeToSample

type BoxTypeSymbol Skip Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.Skip

type BoxTypeSymbol Skip = "skip"
type BoxTypeSymbol SegmentType Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SegmentType

type BoxTypeSymbol SampleToChunkTable Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SampleToChunk

type BoxTypeSymbol SampleTable Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SampleTable

type BoxTypeSymbol SampleSizeTable Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SampleSize

type BoxTypeSymbol SampleDescription Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SampleDescription

type BoxTypeSymbol ProgressiveDownload Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.ProgressiveDownloadInformation

type BoxTypeSymbol NullMediaHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.NullMediaHeader

type BoxTypeSymbol MovieFragmentHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieFragmentHeader

type BoxTypeSymbol MovieFragment Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieFragment

type BoxTypeSymbol MovieExtends Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieExtends

type BoxTypeSymbol Movie Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.Movie

type BoxTypeSymbol Movie = "moov"
type BoxTypeSymbol MediaInformation Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MediaInformation

type BoxTypeSymbol MediaData Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MediaData

type BoxTypeSymbol MediaData = "mdat"
type BoxTypeSymbol Media Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.Media

type BoxTypeSymbol Media = "mdia"
type BoxTypeSymbol SomeColourInformation Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VisualSampleEntry

type BoxTypeSymbol PixelAspectRatio Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VisualSampleEntry

type BoxTypeSymbol CleanAperture Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VisualSampleEntry

type BoxTypeSymbol VideoMediaHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VideoMediaHeader

type BoxTypeSymbol SoundMediaHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SoundMediaHeader

type BoxTypeSymbol BitRate Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MetaDataSampleEntry

type BoxTypeSymbol BitRate = "btrt"
type BoxTypeSymbol UriInitField Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MetaDataSampleEntry

type BoxTypeSymbol UriField Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MetaDataSampleEntry

type BoxTypeSymbol UriField = "uri "
type BoxTypeSymbol HintMediaHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.HintMediaHeader

type BoxTypeSymbol FileType Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.FileType

type BoxTypeSymbol FileType = "ftyp"
type BoxTypeSymbol DataInformation Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.DataInformation

type BoxTypeSymbol DataEntryUrn Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.DataEntryUrn

type BoxTypeSymbol DataEntryUrl Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.DataEntryUrl

type BoxTypeSymbol DataReference Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.DataReference

type BoxTypeSymbol ChunkOffsetTable64 Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.ChunkOffset

type BoxTypeSymbol ChunkOffsetTable32 Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.ChunkOffset

type BoxTypeSymbol AudioEsd Source # 
Instance details

Defined in Data.ByteString.Mp4.Boxes.Mp4AudioSampleEntry

type BoxTypeSymbol AudioEsd = "mp4a"
type BoxTypeSymbol (Box b :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

type BoxTypeSymbol (TrackHeader v :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackHeader

type BoxTypeSymbol (TrackHeader v :: Type) = "tkhd"
type BoxTypeSymbol (TrackFragBaseMediaDecodeTime v :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackFragBaseMediaDecodeTime

type BoxTypeSymbol (MovieHeader v :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieHeader

type BoxTypeSymbol (MovieHeader v :: Type) = "mvhd"
type BoxTypeSymbol (MovieExtendsHeader v :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieExtendsHeader

type BoxTypeSymbol (MediaHeader v :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MediaHeader

type BoxTypeSymbol (MediaHeader v :: Type) = "mdhd"
type BoxTypeSymbol (Handler t :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.Handler

type BoxTypeSymbol (Handler t :: Type) = "hdlr"
type BoxTypeSymbol (VideoSampleEntry c :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VisualSampleEntry

type BoxTypeSymbol (SampleEntry handlerSpecific :: Type) Source #

The BoxTypeSymbol of sample entry is exactly the format type index of the SampleEntry family.

Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SampleEntry

type BoxTypeSymbol (SampleEntry handlerSpecific :: Type) = BoxTypeSymbol handlerSpecific
type BoxTypeSymbol (MetaDataCoding c :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MetaDataSampleEntry

type BoxTypeSymbol (HintSampleEntry protocol :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.HintSampleEntry

type BoxTypeSymbol (HintSampleEntry protocol :: Type) = BoxTypeSymbol protocol
type BoxTypeSymbol (AudioSampleEntry b :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.AudioSampleEntry

type BoxTypeSymbol (ContainerBox b bs :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

type BoxTypeSymbol (FullBox t v :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.FullBox

class IsBoxContent a where Source #

Types that go into a box. A box content is a piece of data that can be reused in different instances of IsBox. It has no BoxType and hence defines no box.

Instances
IsBoxContent Int8 Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent Int16 Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent Int32 Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent Int64 Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent Word8 Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent Word16 Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent Word32 Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent Word64 Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent () Source #

An empty box content can by represented by () (i.e. unit).

Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

Methods

boxSize :: () -> BoxSize Source #

boxBuilder :: () -> Builder Source #

IsBoxContent ByteString Source #

Trivial instance for ByteString

Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent Text Source #

This Text instance writes a null terminated UTF-8 string.

Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent BuilderBox Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent BoxTypeExtension Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent FourCc Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent BoxType Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent BoxSizeExtension Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent BoxSize Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent Esd Source # 
Instance details

Defined in Data.ByteString.Mp4.Boxes.ElementaryStreamDescriptor

IsBoxContent TimeScale Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.Time

IsBoxContent TrackRun Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackRun

IsBoxContent TrackFragmentHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackFragmentHeader

IsBoxContent TrackExtends Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackExtends

IsBoxContent TimeToSampleTable Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TimeToSample

IsBoxContent Skip Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.Skip

IsBoxContent SegmentType Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SegmentType

IsBoxContent SampleToChunkTable Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SampleToChunk

IsBoxContent SampleSizeTable Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SampleSize

IsBoxContent SampleDescription Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SampleDescription

IsBoxContent NullMediaHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.NullMediaHeader

IsBoxContent MovieFragmentHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieFragmentHeader

IsBoxContent MediaData Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MediaData

IsBoxContent Language Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.Language

IsBoxContent FullRangeFlag Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VisualSampleEntry

IsBoxContent SomeColourInformation Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VisualSampleEntry

IsBoxContent PixelAspectRatio Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VisualSampleEntry

IsBoxContent CleanAperture Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VisualSampleEntry

IsBoxContent VideoMediaHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VideoMediaHeader

IsBoxContent SoundMediaHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SoundMediaHeader

IsBoxContent BitRate Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MetaDataSampleEntry

IsBoxContent UriInitField Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MetaDataSampleEntry

IsBoxContent UriField Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MetaDataSampleEntry

IsBoxContent HintMediaHeader Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.HintMediaHeader

IsBoxContent FileType Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.FileType

IsBoxContent DataEntryUrn Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.DataEntryUrn

IsBoxContent DataEntryUrl Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.DataEntryUrl

IsBoxContent DataReference Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.DataReference

IsBoxContent AudioEsd Source # 
Instance details

Defined in Data.ByteString.Mp4.Boxes.Mp4AudioSampleEntry

IsBoxContent [Box SomeColourInformation] Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VisualSampleEntry

IsBoxContent a => IsBoxContent (Maybe a) Source #

This instance writes zero bytes for Nothing and delegates on Just.

Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBoxContent (Boxes bs) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBox cnt => IsBoxContent (Box cnt) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

Methods

boxSize :: Box cnt -> BoxSize Source #

boxBuilder :: Box cnt -> Builder Source #

IsBoxContent t => IsBoxContent (Expandable t) Source # 
Instance details

Defined in Data.ByteString.Mp4.Boxes.Expandable

IsBoxContent (U32Text label) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.BoxFields

IsBoxContent (Ticks32 n) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.Time

IsBoxContent (Ticks n) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.Time

IsBoxContent (TrackHeader version) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackHeader

IsBoxContent (TrackFragBaseMediaDecodeTime version) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.TrackFragBaseMediaDecodeTime

IsBoxContent (MovieHeader version) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieHeader

IsBoxContent (MovieExtendsHeader version) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MovieExtendsHeader

IsBoxContent (MediaHeader v) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MediaHeader

KnownSymbol (HandlerTypeCode t) => IsBoxContent (Handler t) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.Handler

(KnownSymbol (ColourTypeCode profile), IsBoxContent (ColourType profile)) => IsBoxContent (ColourInformation profile) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VisualSampleEntry

IsBoxContent c => IsBoxContent (VideoSampleEntry c) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VisualSampleEntry

IsBoxContent handlerSpecific => IsBoxContent (SampleEntry handlerSpecific) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SampleEntry

Methods

boxSize :: SampleEntry handlerSpecific -> BoxSize Source #

boxBuilder :: SampleEntry handlerSpecific -> Builder Source #

IsBoxContent (MetaDataCoding "mett") Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MetaDataSampleEntry

IsBoxContent (MetaDataCoding "metx") Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MetaDataSampleEntry

IsBoxContent (MetaDataCoding "urim") Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.MetaDataSampleEntry

IsBoxContent stcoEntry => IsBoxContent (ChunkOffsetTable stcoEntry) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.ChunkOffset

IsBoxContent b => IsBoxContent (AudioSampleEntry b) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.AudioSampleEntry

(IsBoxContent p, IsBoxContent c) => IsBoxContent (p :+ c) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

Methods

boxSize :: (p :+ c) -> BoxSize Source #

boxBuilder :: (p :+ c) -> Builder Source #

IsBoxContent (ContainerBox b bs) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

KnownNat bits => IsBoxContent (BoxFlags bits) Source #

Get the number of bytes required to store a number of bits.

Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.FullBox

(IsBox t, KnownNat v) => IsBoxContent (FullBox t v) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.FullBox

IsTextSize len => IsBoxContent (FixSizeText len label) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.BoxFields

Methods

boxSize :: FixSizeText len label -> BoxSize Source #

boxBuilder :: FixSizeText len label -> Builder Source #

IsBoxContent (TS v n) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.Time

Methods

boxSize :: TS v n -> BoxSize Source #

boxBuilder :: TS v n -> Builder Source #

IsBoxContent c => IsBoxContent (Tagged s c) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

(Num sizeType, IsBoxContent sizeType, IsBoxContent contentType) => IsBoxContent (ListContent sizeType contentType) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

Methods

boxSize :: ListContent sizeType contentType -> BoxSize Source #

boxBuilder :: ListContent sizeType contentType -> Builder Source #

IsBoxContent (Versioned v0 v1 version) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.Versioned

Methods

boxSize :: Versioned v0 v1 version -> BoxSize Source #

boxBuilder :: Versioned v0 v1 version -> Builder Source #

(IsBoxContent o, FromTypeLit o v) => IsBoxContent (Template o v) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.BoxFields

IsBoxContent (Scalar Int64 label) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.BoxFields

IsBoxContent (Scalar Int32 label) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.BoxFields

IsBoxContent (Scalar Int16 label) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.BoxFields

IsBoxContent (Scalar Int8 label) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.BoxFields

IsBoxContent (Scalar Word64 label) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.BoxFields

IsBoxContent (Scalar Word32 label) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.BoxFields

IsBoxContent (Scalar Word16 label) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.BoxFields

IsBoxContent (Scalar Word8 label) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.BoxFields

(IsBoxContent o, FromTypeLit o v) => IsBoxContent (Constant o v) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.BoxFields

(Num o, IsBoxContent (Scalar o label)) => IsBoxContent (ScalarArray label len o) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Util.BoxFields

Methods

boxSize :: ScalarArray label len o -> BoxSize Source #

boxBuilder :: ScalarArray label len o -> Builder Source #

Box Contents

data Box b where Source #

A type that wraps the contents of a box and the box type.

Constructors

Box :: !(BoxContent b) -> Box b 
Instances
Default (BoxContent b) => Default (Box b) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

Methods

def :: Box b #

IsBoxContent [Box SomeColourInformation] Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.VisualSampleEntry

IsBox cnt => IsBoxContent (Box cnt) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

Methods

boxSize :: Box cnt -> BoxSize Source #

boxBuilder :: Box cnt -> Builder Source #

IsBox b => IsBox (Box b) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

Associated Types

type BoxContent (Box b) :: Type Source #

Methods

toBoxType :: proxy (Box b) -> BoxType Source #

type BoxContent (Box b) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

type IsRuleConform (Box (SampleEntry handlerSpecificEntry) :: Type) (MatchSampleEntry handlerType :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Boxes.SampleEntry

type IsRuleConform (Box (SampleEntry handlerSpecificEntry) :: Type) (MatchSampleEntry handlerType :: Type) = HandlerTypeCode (GetHandlerType handlerSpecificEntry) == HandlerTypeCode handlerType
type BoxTypeSymbol (Box b :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

type IsRuleConform (Box b :: Type) (Box r :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

type IsRuleConform (Box b :: Type) (ContainerBox b' rules :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

data ContainerBox b (bs :: [Type]) where Source #

Compose BoxContent and Boxes under the Constraint that they are composable.

Constructors

ContainerBox :: IsBox b => !(BoxContent b) -> !(Boxes bs) -> ContainerBox b bs 
Instances
IsBoxContent (ContainerBox b bs) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

IsBox b => IsBox (ContainerBox b bs) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

Associated Types

type BoxContent (ContainerBox b bs) :: Type Source #

Methods

toBoxType :: proxy (ContainerBox b bs) -> BoxType Source #

type IsRuleConform (Box b :: Type) (ContainerBox b' rules :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

type BoxTypeSymbol (ContainerBox b bs :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

type BoxContent (ContainerBox b bs) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

data Boxes (boxTypes :: [Type]) where Source #

A heterogenous collection of boxes.

Constructors

NoBoxes :: Boxes '[] 
(:.) :: IsBox l => !(Box l) -> !(Boxes r) -> Boxes (Box l ': r) infixr 2 
(:<>) :: !(Boxes l) -> !(Boxes r) -> Boxes (l ++ r) infixr 1

Create a Boxes collection from two Boxes

(:|) :: (IsBox l, IsBox r) => !(Box l) -> !(Box r) -> Boxes '[Box l, Box r] infixr 2 
Instances
IsBoxContent (Boxes bs) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

type IsRuleConform (Boxes bs :: Type) (Boxes rs :: Type) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

type IsRuleConform (Boxes bs :: Type) (Boxes rs :: Type) = IsRuleConform bs rs

($:) :: IsBox l => (Boxes '[Box l] -> r) -> Box l -> r infixr 3 Source #

Apply a function to a Boxes collection containing only a single Box.

singletonBox :: IsBox l => Box l -> Boxes '[Box l] Source #

Create a Boxes collection with a single Box.

typeListLength :: forall a proxy (ts :: [k]). (KnownNat (Length ts), Num a) => proxy ts -> a Source #

Get the elements in a type level array

containerBox :: IsBox t => BoxContent t -> Boxes ts -> Box (ContainerBox t ts) Source #

A box that contains no fields, but nested boxes.

Box Size and Type

data BoxSize Source #

The size of the box. If the size is limited to a (fixed) value, it can be provided as a Word64 which will be represented as either a 32bit compact size or as 64 bit largesize. If UnlimitedSize is used, the box extends to the end of the file.

Constructors

UnlimitedSize 
BoxSize !Word64 

fromBoxSize :: Num a => a -> BoxSize -> a Source #

newtype BoxSizeExtension Source #

The BoxSize can be > 2^32 in which case an BoxSizeExtension must be added after the type field.

data BoxType Source #

A box has a type, this is the value level representation for the box type.

Constructors

StdType !FourCc

FourCc can be used as boxType in Box, standard four letter character code, e.g. ftyp

CustomBoxType !String

CustomBoxType defines custom boxTypes in Boxes.

parseBoxType :: KnownSymbol t => proxy t -> BoxType Source #

Create a box type from a Symbol. Parse the symbol value, if it's a four charachter code, then return that as StdType otherwise parse a UUID (TODO) and return a CustomBoxType.

newtype FourCc Source #

A type containin a printable four letter character code. TODO replace impl with U32Text

Constructors

FourCc (Char, Char, Char, Char) 

newtype BoxTypeExtension Source #

When using custom types extra data must be written after the extra size information. Since the box type and the optional custom box type are not guaranteed to be consequtive, this type handles the second part seperately.

IsBoxContent instances

Box concatenation

data a :+ b infixr 3 Source #

Box content composition

Constructors

!a :+ !b infixr 3 
Instances
(Default a, Default b) => Default (a :+ b) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

Methods

def :: a :+ b #

(IsBoxContent p, IsBoxContent c) => IsBoxContent (p :+ c) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

Methods

boxSize :: (p :+ c) -> BoxSize Source #

boxBuilder :: (p :+ c) -> Builder Source #

Tagged boxes

List Box Content

newtype ListContent sizeType contentType Source #

A list of things that renders to a size field with the number of elements and the sequence of elements. This type is index with the size field type.

Constructors

ListContent [contentType] 
Instances
Default (ListContent sizeTupe contentType) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

Methods

def :: ListContent sizeTupe contentType #

(Num sizeType, IsBoxContent sizeType, IsBoxContent contentType) => IsBoxContent (ListContent sizeType contentType) Source # 
Instance details

Defined in Data.ByteString.IsoBaseFileFormat.Box

Methods

boxSize :: ListContent sizeType contentType -> BoxSize Source #

boxBuilder :: ListContent sizeType contentType -> Builder Source #

Words and Integer

Boxes of Bits

Type Layout Rule Matchers

type OM b bs = ContainerBox b bs Source #

Mandatory, container box, exactly one

type OO b bs = OnceOptionalX (ContainerBox b bs) Source #

Optional, container box, zero or one

type SM b bs = SomeMandatoryX (ContainerBox b bs) Source #

Mandatory, container box, one or more

type SO b bs = SomeOptionalX (ContainerBox b bs) Source #

Optional, container box, zero or more

type OM_ b = Box b Source #

Mandatory, exactly one, no children

type OO_ b = OnceOptionalX (Box b) Source #

Optional, zero or one, no children

type SM_ b = SomeMandatoryX (Box b) Source #

Mandatory, one or more, no children

type SO_ b = SomeOptionalX (Box b) Source #

Optional, zero or more, no children

type family IsContainerBox t :: Bool where ... Source #

type family ChildBoxes c where ... Source #

Equations

ChildBoxes (ContainerBox a as) = Boxes as