Supplementary AAC

pull/181/head
zang191993@163.com 3 years ago
parent fbc3387255
commit 01a079accf

@ -31,9 +31,19 @@ import (
const ( const (
AdtsHeaderLength = 7 AdtsHeaderLength = 7
AscSamplingFrequencyIndex96000 = 0
AscSamplingFrequencyIndex88200 = 1
AscSamplingFrequencyIndex64000 = 2
AscSamplingFrequencyIndex48000 = 3 AscSamplingFrequencyIndex48000 = 3
AscSamplingFrequencyIndex44100 = 4 AscSamplingFrequencyIndex44100 = 4
AscSamplingFrequencyIndex32000 = 5
AscSamplingFrequencyIndex24000 = 6
AscSamplingFrequencyIndex22050 = 7 AscSamplingFrequencyIndex22050 = 7
AscSamplingFrequencyIndex16000 = 8
AscSamplingFrequencyIndex12000 = 9
AscSamplingFrequencyIndex11025 = 10
AscSamplingFrequencyIndex8000 = 11
AscSamplingFrequencyIndex7350 = 12
) )
const ( const (
@ -49,7 +59,7 @@ const (
// <1.6.3.4 channelConfiguration> // <1.6.3.4 channelConfiguration>
// -------------------------------------------------------- // --------------------------------------------------------
// audio object type [5b] 1=AAC MAIN 2=AAC LC // audio object type [5b] 1=AAC MAIN 2=AAC LC
// samplingFrequencyIndex [4b] 3=48000, 4=44100, 5=32000, 6=24000, 7=22050, 11=11025 // samplingFrequencyIndex [4b] 0=96000, 1=88200, 2=64000, 3=48000, 4=44100, 5=32000, 6=24000, 7=22050, 8=16000, 9=12000, 10=11025, 11=11025, 12=7350
// channelConfiguration [4b] 1=center front speaker 2=left, right front speakers // channelConfiguration [4b] 1=center front speaker 2=left, right front speakers
// //
type AscContext struct { type AscContext struct {
@ -170,12 +180,30 @@ func (ascCtx *AscContext) PackToAdtsHeader(out []byte, frameLength int) error {
func (ascCtx *AscContext) GetSamplingFrequency() (int, error) { func (ascCtx *AscContext) GetSamplingFrequency() (int, error) {
switch ascCtx.SamplingFrequencyIndex { switch ascCtx.SamplingFrequencyIndex {
case AscSamplingFrequencyIndex96000:
return 96000, nil
case AscSamplingFrequencyIndex88200:
return 88200, nil
case AscSamplingFrequencyIndex64000:
return 64000, nil
case AscSamplingFrequencyIndex48000: case AscSamplingFrequencyIndex48000:
return 48000, nil return 48000, nil
case AscSamplingFrequencyIndex44100: case AscSamplingFrequencyIndex44100:
return 44100, nil return 44100, nil
case AscSamplingFrequencyIndex32000:
return 32000, nil
case AscSamplingFrequencyIndex22050: case AscSamplingFrequencyIndex22050:
return 22050, nil return 22050, nil
case AscSamplingFrequencyIndex16000:
return 16000, nil
case AscSamplingFrequencyIndex12000:
return 12000, nil
case AscSamplingFrequencyIndex11025:
return 11025, nil
case AscSamplingFrequencyIndex8000:
return 8000, nil
case AscSamplingFrequencyIndex7350:
return 7350, nil
} }
return -1, fmt.Errorf("%w. asCtx=%+v", base.ErrSamplingFrequencyIndex, ascCtx) return -1, fmt.Errorf("%w. asCtx=%+v", base.ErrSamplingFrequencyIndex, ascCtx)
} }

Loading…
Cancel
Save