From 78a74da8d6caf6ade3fb63a0fce2d9b62bfb60d0 Mon Sep 17 00:00:00 2001 From: Alex X Date: Wed, 22 May 2024 18:46:30 +0300 Subject: [PATCH] Fix aac.DecodeConfig sampleRate parsing --- pkg/aac/aac.go | 2 ++ pkg/aac/aac_test.go | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/pkg/aac/aac.go b/pkg/aac/aac.go index c991431d..5ce4e82d 100644 --- a/pkg/aac/aac.go +++ b/pkg/aac/aac.go @@ -69,6 +69,8 @@ func DecodeConfig(b []byte) (objType, sampleFreqIdx, channels byte, sampleRate u sampleFreqIdx = rd.ReadBits8(4) if sampleFreqIdx == 0b1111 { sampleRate = rd.ReadBits(24) + } else { + sampleRate = sampleRates[sampleFreqIdx] } channels = rd.ReadBits8(4) diff --git a/pkg/aac/aac_test.go b/pkg/aac/aac_test.go index 08d9c436..d1af6e52 100644 --- a/pkg/aac/aac_test.go +++ b/pkg/aac/aac_test.go @@ -41,3 +41,12 @@ func TestADTS(t *testing.T) { require.Equal(t, src[:len(dst)], dst) } + +func TestEncodeConfig(t *testing.T) { + conf := EncodeConfig(TypeAACLC, 48000, 1, false) + require.Equal(t, "1188", hex.EncodeToString(conf)) + conf = EncodeConfig(TypeAACLC, 16000, 1, false) + require.Equal(t, "1408", hex.EncodeToString(conf)) + conf = EncodeConfig(TypeAACLC, 8000, 1, false) + require.Equal(t, "1588", hex.EncodeToString(conf)) +}