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

Safe HaskellNone
LanguageHaskell2010

Data.ByteString.Mp4.Boxes.AudioSpecificConfig

Contents

Description

mp4a Audio sample entry according to ISO 14496-14

Synopsis

Decoder Configuration for ISO 14496-3 (Audio)

type AudioConfigAacLc freq channels = AudioConfigAacMinimal AacLc DefaultGASpecificConfig freq channels Source #

A audio config using AudioConfigAacMinimal for AAC-LC.

type AudioConfigHeAac freq channels = AudioConfigSbrExplicitHierachical AacLc DefaultGASpecificConfig freq channels freq Source #

A audio config using AudioConfigSbrExplicitHierachical for HE-AAC (v1) in dual rate mode.

type AudioConfigCommon aoId samplingFrequencyIndex channels rest = ((AudioObjectTypeRec aoId :+: BitRecordOfEnum samplingFrequencyIndex) :+: BitRecordOfEnum channels) :+: rest Source #

Common header for audio specific config

Audio Object Type

data AudioObjectTypeId Source #

Constructors

AacMain

ISO 14496-4 subpart 4

AacLc

ISO 14496-4 subpart 4

AacSsr

ISO 14496-4 subpart 4

AacLtp

ISO 14496-4 subpart 4

Sbr

ISO 14496-4 subpart 4

AacScalable

ISO 14496-4 subpart 4

TwinVq

ISO 14496-4 subpart 4

Celp

ISO 14496-4 subpart 3

Hvxc

ISO 14496-4 subpart 2

AoReserved1 
AoReserved2 
Ttsi

ISO 14496-4 subpart 6

MainSunthetic

ISO 14496-4 subpart 5

WavetableSynthesis

ISO 14496-4 subpart 5

GeneralMidi

ISO 14496-4 subpart 5

AlgorithmicSynthesisAndAudioFx

ISO 14496-4 subpart 5

ErAacLc

ISO 14496-4 subpart 4

AoReserved3 
ErAacLtp

ISO 14496-4 subpart 4

ErAacScalable

ISO 14496-4 subpart 4

ErTwinVq

ISO 14496-4 subpart 4

ErBsac

ISO 14496-4 subpart 4

ErAacLd

ISO 14496-4 subpart 4

ErCelp

ISO 14496-4 subpart 3

ErHvxc

ISO 14496-4 subpart 2

ErHiln

ISO 14496-4 subpart 7

ErParametric

ISO 14496-4 subpart 2 or 7

Ssc

ISO 14496-4 subpart 8

AoReserved4 
AoReserved5 
AoCustom 
AoLayer1

ISO 14496-4 subpart 9

AoLayer2

ISO 14496-4 subpart 9

AoLayer3

ISO 14496-4 subpart 9

AoDst

ISO 14496-4 subpart 10

AotInvalid 

Instances

type FromEnum AudioObjectTypeId AacMain Source # 
type FromEnum AudioObjectTypeId AacLc Source # 
type FromEnum AudioObjectTypeId AacSsr Source # 
type FromEnum AudioObjectTypeId AacLtp Source # 
type FromEnum AudioObjectTypeId Sbr Source # 
type FromEnum AudioObjectTypeId AacScalable Source # 
type FromEnum AudioObjectTypeId TwinVq Source # 
type FromEnum AudioObjectTypeId Celp Source # 
type FromEnum AudioObjectTypeId Hvxc Source # 
type FromEnum AudioObjectTypeId AoReserved1 Source # 
type FromEnum AudioObjectTypeId AoReserved2 Source # 
type FromEnum AudioObjectTypeId Ttsi Source # 
type FromEnum AudioObjectTypeId MainSunthetic Source # 
type FromEnum AudioObjectTypeId WavetableSynthesis Source # 
type FromEnum AudioObjectTypeId GeneralMidi Source # 
type FromEnum AudioObjectTypeId AlgorithmicSynthesisAndAudioFx Source # 
type FromEnum AudioObjectTypeId ErAacLc Source # 
type FromEnum AudioObjectTypeId AoReserved3 Source # 
type FromEnum AudioObjectTypeId ErAacLtp Source # 
type FromEnum AudioObjectTypeId ErAacScalable Source # 
type FromEnum AudioObjectTypeId ErTwinVq Source # 
type FromEnum AudioObjectTypeId ErBsac Source # 
type FromEnum AudioObjectTypeId ErAacLd Source # 
type FromEnum AudioObjectTypeId ErCelp Source # 
type FromEnum AudioObjectTypeId ErHvxc Source # 
type FromEnum AudioObjectTypeId ErHiln Source # 
type FromEnum AudioObjectTypeId ErParametric Source # 
type FromEnum AudioObjectTypeId Ssc Source # 
type FromEnum AudioObjectTypeId AoReserved4 Source # 
type FromEnum AudioObjectTypeId AoReserved5 Source # 
type FromEnum AudioObjectTypeId AoCustom Source # 
type FromEnum AudioObjectTypeId AoLayer1 Source # 
type FromEnum AudioObjectTypeId AoLayer2 Source # 
type FromEnum AudioObjectTypeId AoLayer3 Source # 
type FromEnum AudioObjectTypeId AoDst Source # 
type FromEnum AudioObjectTypeId AotInvalid Source # 

type family AudioObjectTypeField1 (n :: Nat) :: IsA (BitRecordField (MkFieldBits :: BitField (B 5) Nat 5)) where ... Source #

Equations

AudioObjectTypeField1 n = If (n <=? 30) (Field 5 := n) (Field 5 := 31) 

type family AudioObjectTypeField2 (n :: Nat) :: BitRecord where ... Source #

Equations

AudioObjectTypeField2 n = If (n <=? 30) EmptyBitRecord (BitRecordMember (Field 6 := (n - 31))) 

Sampling Frequency

data SamplingFreqTable Source #

Instances

type FromEnum SamplingFreqTable SF96000 Source # 
type FromEnum SamplingFreqTable SF88200 Source # 
type FromEnum SamplingFreqTable SF64000 Source # 
type FromEnum SamplingFreqTable SF48000 Source # 
type FromEnum SamplingFreqTable SF44100 Source # 
type FromEnum SamplingFreqTable SF32000 Source # 
type FromEnum SamplingFreqTable SF24000 Source # 
type FromEnum SamplingFreqTable SF22050 Source # 
type FromEnum SamplingFreqTable SF16000 Source # 
type FromEnum SamplingFreqTable SF12000 Source # 
type FromEnum SamplingFreqTable SF11025 Source # 
type FromEnum SamplingFreqTable SF8000 Source # 
type FromEnum SamplingFreqTable SF7350 Source # 
type FromEnum SamplingFreqTable SFReserved1 Source # 
type FromEnum SamplingFreqTable SFReserved2 Source # 
type FromEnum SamplingFreqTable SFCustom Source # 

Channel Config (Mono, Stereo, 7-1 Surround, ...)

More Specific audio decoder config

data AudioSubConfig :: Type Source #

Instances

type Eval AudioSubConfig (GASpecificConfig fl cd ext) Source # 
type Eval AudioSubConfig (GASpecificConfig fl cd ext) = TypeError AudioSubConfig (Text "AudioSubConfig is abstract!")

type family BitRecordOfAudioSubConfig (x :: IsA AudioSubConfig) :: BitRecord Source #

Instances

type BitRecordOfAudioSubConfig (GASpecificConfig fl cd ext) Source # 
type BitRecordOfAudioSubConfig (GASpecificConfig fl cd ext) = (:+:) ((.+:) Bool * Bool 1 MkFieldFlag ((:~) "frameLenFlag" Bool * Bool 1 MkFieldFlag Flag fl) ((.+:) Bool * Bool 1 MkFieldFlag (FlagJust (IsA Type (FieldValue * "coreCoderDelay" Nat)) cd) ((:+?) "coreCoderDelay" (B 14) * Nat 14 (MkFieldBits 14) (Field 14) cd))) (BitRecordOfGASExtension ext)

data GASpecificConfig frameLenFlag coreCoderDelay extension :: IsA AudioSubConfig Source #

Instances

type Eval AudioSubConfig (GASpecificConfig fl cd ext) Source # 
type Eval AudioSubConfig (GASpecificConfig fl cd ext) = TypeError AudioSubConfig (Text "AudioSubConfig is abstract!")
type BitRecordOfAudioSubConfig (GASpecificConfig fl cd ext) Source # 
type BitRecordOfAudioSubConfig (GASpecificConfig fl cd ext) = (:+:) ((.+:) Bool * Bool 1 MkFieldFlag ((:~) "frameLenFlag" Bool * Bool 1 MkFieldFlag Flag fl) ((.+:) Bool * Bool 1 MkFieldFlag (FlagJust (IsA Type (FieldValue * "coreCoderDelay" Nat)) cd) ((:+?) "coreCoderDelay" (B 14) * Nat 14 (MkFieldBits 14) (Field 14) cd))) (BitRecordOfGASExtension ext)

data GASExtension Source #

TODO implment that GAS extensions

type BitRecordOfGASExtension x = BitRecordMember (("has-gas-extension" @: Flag) := False) Source #