isobmff-0.13.0.0: spec/ElementaryStreamDescriptorSpec.hs
{-# LANGUAGE OverloadedStrings #-}
module ElementaryStreamDescriptorSpec (spec) where
import Test.Hspec
import Data.ByteString.Mp4.Boxes.ElementaryStreamDescriptor
import Data.ByteString.Mp4.Boxes.AudioSpecificConfig
import Data.ByteString.Mp4.Boxes.DecoderConfigDescriptor
import Data.ByteString.Mp4.Boxes.DecoderSpecificInfo
import Data.ByteString.IsoBaseFileFormat.ReExports
import Data.ByteString.IsoBaseFileFormat.Box
spec :: Spec
spec = do
#ifndef COMPLEXTESTS
return ()
#else
describe "EsdBox" $ do
let eb = esdBox (Proxy @TestEsDescriptor) False 0 0 0
it "has the correct size" $
boxSize eb `shouldBe` 39
it "generates the expected bits" $
printBuilder (boxBuilder eb)
`shouldBe` "<< 00 00 00 27 65 73 64 73 00 00 00 00 03 19 00 01 00 04 11 40 15 00 00 00 00 00 00 00 00 00 00 00 05 02 11 98 06 01 02 >>"
type TestEsDescriptor =
ESDescriptorMp4File
(StaticFieldValue "esId" 1)
TestConfigDescriptor
type TestConfigDescriptor =
DecoderConfigDescriptor
'AudioIso14496_3
'AudioStream
'[AudioConfigAacMinimal
'AacLc
DefaultGASpecificConfig
(SetEnum "samplingFreq" SamplingFreq 'SF48000)
(SetEnum "channelConfig" ChannelConfig 'SinglePair)]
'[]
#endif