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)) +}