isobmff-builder-0.11.3.0: A (bytestring-) builder for the ISO-14496-12 base media file format

Safe HaskellNone
LanguageHaskell2010

Data.ByteString.IsoBaseFileFormat.Boxes.SampleEntry

Description

Connect a sample description to a data reference via an index into the data reference entry table.

Synopsis

Documentation

sampleEntry :: U16 "data_reference_index" -> handlerSpecific -> Box (SampleEntry handlerSpecific) Source #

Create a SampleEntry Box from the data reference index and the HandlerType specific SampleEntry instance.

newtype SampleEntry handlerSpecific where Source #

A common header for all specific sample entries, the BoxContent of the abstract SampleEntry is SampleEntry (SampleEntry h f).

Constructors

SampleEntry :: (Constant (U8Arr "reserved" 6) '[0, 0, 0, 0, 0, 0] :+ (U16 "data_reference_index" :+ handlerSpecific)) -> SampleEntry handlerSpecific 

Instances

Default handlerSpecific => Default (SampleEntry handlerSpecific) Source # 

Methods

def :: SampleEntry handlerSpecific #

IsBoxContent handlerSpecific => IsBoxContent (SampleEntry handlerSpecific) Source # 

Methods

boxSize :: SampleEntry handlerSpecific -> BoxSize Source #

boxBuilder :: SampleEntry handlerSpecific -> Builder Source #

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

Associated Types

type BoxContent (SampleEntry handlertype) :: * Source #

Methods

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

type IsRuleConform Type * (Box (SampleEntry handlerSpecificEntry)) (MatchSampleEntry handlerType) Source # 
type IsRuleConform Type * (Box (SampleEntry handlerSpecificEntry)) (MatchSampleEntry handlerType) = (==) Symbol (HandlerTypeCode (GetHandlerType handlerSpecificEntry)) (HandlerTypeCode handlerType)
type BoxContent (SampleEntry handlertype) Source # 
type BoxContent (SampleEntry handlertype) = SampleEntry handlertype
type BoxTypeSymbol * (SampleEntry handlerSpecific) Source # 
type BoxTypeSymbol * (SampleEntry handlerSpecific) = BoxTypeSymbol * handlerSpecific

data MatchSampleEntry :: HandlerType -> Type Source #

Use this in IsMediaFileFormats BoxLayout to range over any specific SampleEntry, disregarding the second parameter (that indicates low-level format, protocol or codec characteristics). Add a GetHandlerType instance for MatchSampleEntry to match a sample type specific entry.

Instances

type IsRuleConform Type * (Box (SampleEntry handlerSpecificEntry)) (MatchSampleEntry handlerType) Source # 
type IsRuleConform Type * (Box (SampleEntry handlerSpecificEntry)) (MatchSampleEntry handlerType) = (==) Symbol (HandlerTypeCode (GetHandlerType handlerSpecificEntry)) (HandlerTypeCode handlerType)