|
|
|
@ -31,9 +31,19 @@ import (
|
|
|
|
|
const (
|
|
|
|
|
AdtsHeaderLength = 7
|
|
|
|
|
|
|
|
|
|
AscSamplingFrequencyIndex96000 = 0
|
|
|
|
|
AscSamplingFrequencyIndex88200 = 1
|
|
|
|
|
AscSamplingFrequencyIndex64000 = 2
|
|
|
|
|
AscSamplingFrequencyIndex48000 = 3
|
|
|
|
|
AscSamplingFrequencyIndex44100 = 4
|
|
|
|
|
AscSamplingFrequencyIndex32000 = 5
|
|
|
|
|
AscSamplingFrequencyIndex24000 = 6
|
|
|
|
|
AscSamplingFrequencyIndex22050 = 7
|
|
|
|
|
AscSamplingFrequencyIndex16000 = 8
|
|
|
|
|
AscSamplingFrequencyIndex12000 = 9
|
|
|
|
|
AscSamplingFrequencyIndex11025 = 10
|
|
|
|
|
AscSamplingFrequencyIndex8000 = 11
|
|
|
|
|
AscSamplingFrequencyIndex7350 = 12
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
@ -49,7 +59,7 @@ const (
|
|
|
|
|
// <1.6.3.4 channelConfiguration>
|
|
|
|
|
// --------------------------------------------------------
|
|
|
|
|
// 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
|
|
|
|
|
//
|
|
|
|
|
type AscContext struct {
|
|
|
|
@ -170,12 +180,30 @@ func (ascCtx *AscContext) PackToAdtsHeader(out []byte, frameLength int) error {
|
|
|
|
|
|
|
|
|
|
func (ascCtx *AscContext) GetSamplingFrequency() (int, error) {
|
|
|
|
|
switch ascCtx.SamplingFrequencyIndex {
|
|
|
|
|
case AscSamplingFrequencyIndex96000:
|
|
|
|
|
return 96000, nil
|
|
|
|
|
case AscSamplingFrequencyIndex88200:
|
|
|
|
|
return 88200, nil
|
|
|
|
|
case AscSamplingFrequencyIndex64000:
|
|
|
|
|
return 64000, nil
|
|
|
|
|
case AscSamplingFrequencyIndex48000:
|
|
|
|
|
return 48000, nil
|
|
|
|
|
case AscSamplingFrequencyIndex44100:
|
|
|
|
|
return 44100, nil
|
|
|
|
|
case AscSamplingFrequencyIndex32000:
|
|
|
|
|
return 32000, nil
|
|
|
|
|
case AscSamplingFrequencyIndex22050:
|
|
|
|
|
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)
|
|
|
|
|
}
|
|
|
|
|