isobmff-0.14.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 Apply (BitRecordOfDescriptor :: (Descriptor tag -> BitRecord) -> Type) (MkDescriptor body :: Descriptor tag) Source # 
Instance details

Defined in Data.ByteString.Mp4.Boxes.BaseDescriptor

type From 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 257.

Instance details

Defined in Data.ByteString.Mp4.Boxes.SyncLayerConfigDescriptor

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

Defined in Data.ByteString.Mp4.Boxes.DecoderConfigDescriptor

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

Defined in Data.ByteString.Mp4.Boxes.DecoderSpecificInfo

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

Defined in Data.ByteString.Mp4.Boxes.DecoderConfigDescriptor

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

Defined in Data.ByteString.Mp4.Boxes.ElementaryStreamDescriptor

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