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

Safe HaskellNone
LanguageHaskell2010

Data.ByteString.Mp4.Boxes.BaseDescriptor

Contents

Synopsis

Static base constructor

data Descriptor :: ClassTag n -> Type where Source #

Abstract class of descriptors as recognized by ISO/IEC 14496-1 (Systems). A specifc descriptor is identified by the ClassTag.

Constructors

MkDescriptor :: BitRecord -> Descriptor tag 
Instances
type (BitRecordOfDescriptor :: A (Descriptor tag :-> BitRecord) -> Type) $~ (MkDescriptor body :: Descriptor tag) Source # 
Instance details

Defined in Data.ByteString.Mp4.Boxes.BaseDescriptor

type Eval Mp4SyncLayerDescriptor Source #

In the holy scripture, ISO-14496-14 section 3.1.2, it is written that there shall be restrictions on the elementary stream descriptor, in there it says: Thou shall use only two as the value for the predefined field in the blessed SLDescriptor. Not one, this is a value not big enough, nor three, this value is too much. The righteous one ever only uses two. Only a fool will use 256.

Instance details

Defined in Data.ByteString.Mp4.Boxes.SyncLayerConfigDescriptor

type Eval (ProfileLevelIndicationIndexDescriptor val :: A (Descriptor ProfileLevelIndicationIndexDescr) -> Type) Source # 
Instance details

Defined in Data.ByteString.Mp4.Boxes.DecoderConfigDescriptor

type (DescriptorOfDecoderSpecificInfo :: A (DecoderSpecificInfo ot st :-> Descriptor DecSpecificInfo) -> Type) $~ (MkDecoderSpecificInfo body :: DecoderSpecificInfo ot st) Source # 
Instance details

Defined in Data.ByteString.Mp4.Boxes.DecoderSpecificInfo

type Eval (DecoderConfigDescriptor ot st di ps :: A (Descriptor DecoderConfigDescr) -> Type) Source # 
Instance details

Defined in Data.ByteString.Mp4.Boxes.DecoderConfigDescriptor

type Eval (ESDescriptor esId depEsId url ocrEsId streamPrio decConfig slConfig :: A (Descriptor ES_Descr) -> Type) Source # 
Instance details

Defined in Data.ByteString.Mp4.Boxes.ElementaryStreamDescriptor

type Eval (ESDescriptor esId depEsId url ocrEsId streamPrio decConfig slConfig :: A (Descriptor ES_Descr) -> Type) = (MkDescriptor ((((((("esId" @: FieldU16) :~ esId) .+: (("depEsIdFlag" @: FlagJust depEsId) .+: (("urlFlag" @: FlagJust url) .+: (("ocrEsIdFlag" @: FlagJust ocrEsId) .+: ((("streamPriority" @: Field 5) :~ streamPrio) .+: (("depEsId" @: FieldU16) :+? depEsId)))))) :+: Eval (OptionalRecordOf (Fun1 (RecordField :: IsA (BitRecordField (MkFieldCustom :: BitField ASizedString ASizedString len)) -> A BitRecord -> Type)) url)) :+: (("ocrEsId" @: FieldU16) :+? ocrEsId)) :+: ((BitRecordOfDescriptor :: A (Descriptor DecoderConfigDescr :-> BitRecord) -> Type) $~ Eval decConfig)) :+: ((BitRecordOfDescriptor :: A (Descriptor SLConfigDescr :-> BitRecord) -> Type) $~ Eval slConfig)) :: Descriptor ES_Descr)

type family GetClassTag (c :: ClassTag n) :: Nat where ... Source #

Equations

GetClassTag (c :: ClassTag n) = n 

data ClassTag (tag :: Nat) where Source #

Base Descriptor Class Tags TODO rename to xxxTag

Constructors

ObjectDescr :: ClassTag 1 
InitialObjectDescr :: ClassTag 2 
ES_Descr :: ClassTag 3 
DecoderConfigDescr :: ClassTag 4 
DecSpecificInfo :: ClassTag 5 
SLConfigDescr :: ClassTag 6 
ContentIdentDescr :: ClassTag 7 
SupplContentIdentDescr :: ClassTag 8 
IPI_DescrPointer :: ClassTag 9 
IPMP_DescrPointer :: ClassTag 10 
IPMP_Descr :: ClassTag 11 
QoS_Descr :: ClassTag 12 
RegistrationDescr :: ClassTag 13 
ES_ID_Ref :: ClassTag 15 
MP4_IOD_ :: ClassTag 16 
MP4_OD_ :: ClassTag 17 
IPL_DescrPointerRef :: ClassTag 18 
ExtensionProfileLevelDescr :: ClassTag 19 
ProfileLevelIndicationIndexDescr :: ClassTag 20 
ContentClassificationDescr :: ClassTag 64 
KeyWordDescr :: ClassTag 65 
RatingDescr :: ClassTag 66 
LanguageDescr :: ClassTag 67 
ShortTextualDescr :: ClassTag 68 
ExpandedTextualDescr :: ClassTag 69 
ContentCreatorNameDescr :: ClassTag 70 
ContentCreationDateDescr :: ClassTag 71 
OCICreatorNameDescr :: ClassTag 72 
OCICreationDateDescr :: ClassTag 73 
SmpteCameraPositionDescr :: ClassTag 74 
SegmentDescr :: ClassTag 75 
MediaTimeDescr :: ClassTag 76 
IPMP_ToolsListDescr :: ClassTag 96 
IPMP_Tool :: ClassTag 97 
M4MuxTimingDescr :: ClassTag 98 
M4MuxCodeTableDescr :: ClassTag 99 
ExtSLConfigDescr :: ClassTag 100 
M4MuxBufferSizeDescr :: ClassTag 101 
M4MuxIdentDescr :: ClassTag 102 
DependencyPointer :: ClassTag 103 
DependencyMarker :: ClassTag 104 
M4MuxChannelDescr :: ClassTag 105 
ExtDescrTag :: forall (n :: Nat). (106 <= n, n <= 254) => ClassTag n 
OCIDescrTag :: forall (n :: Nat). (64 <= n, n <= 95) => ClassTag n