Updated fdk-aac, fix tests on systems without AAC SBR/PS encoder
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
DataHoarder 2022-09-10 16:20:51 +02:00
parent 5b3948f68c
commit 15e4c8e6f8
Signed by: DataHoarder
SSH key fingerprint: SHA256:EnPQOqPpbCa7nzalCEJY2sd9iPluFIBuJu2rDFalACI
5 changed files with 79 additions and 9 deletions

View file

@ -6,6 +6,7 @@ import (
"git.gammaspectra.live/S.O.N.G/Kirika/audio"
"git.gammaspectra.live/S.O.N.G/Kirika/audio/format/flac"
"git.gammaspectra.live/S.O.N.G/Kirika/test"
"git.gammaspectra.live/S.O.N.G/go-fdkaac/fdkaac"
"io"
"os"
"testing"
@ -165,6 +166,9 @@ func TestEncodeAACMP4(t *testing.T) {
func TestEncodeAACHEv2(t *testing.T) {
t.Parallel()
if !fdkaac.EncoderCapabilities().PS {
return
}
fp, err := os.Open(test.TestSingleSample24)
if err != nil {
t.Error(err)
@ -190,7 +194,7 @@ func TestEncodeAACHEv2(t *testing.T) {
}()
options := make(map[string]interface{})
options["bitrate"] = "256k"
options["bitrate"] = 32
options["mode"] = "hev2"
err = NewFormat().Encode(source, target, options)

View file

@ -6,6 +6,7 @@ import (
"io"
)
// adtsAACFrameSamples TODO: LC has 1024, others 2048?
const adtsAACFrameSamples = 1024
type AdtsPacketizer struct {
@ -52,9 +53,9 @@ func NewAdtsPacketizer(reader io.Reader) *AdtsPacketizer {
func (o *AdtsPacketizer) GetPacket() Packet {
packet := &AdtsPacket{}
header, _, err := aac_adts.DecodeADTSHeader(o.reader)
header, offset, err := aac_adts.DecodeADTSHeader(o.reader)
if err != nil {
if err != nil || offset != 0 {
return nil
}

View file

@ -0,0 +1,65 @@
//go:build !disable_format_aac && !disable_codec_libfdk_aac && cgo
package packetizer
import (
"git.gammaspectra.live/S.O.N.G/Kirika/audio/format/aac"
"git.gammaspectra.live/S.O.N.G/Kirika/audio/format/flac"
"git.gammaspectra.live/S.O.N.G/Kirika/test"
"git.gammaspectra.live/S.O.N.G/go-fdkaac/fdkaac"
"io"
"os"
"testing"
)
func TestPacketizeADTSHEv2(t *testing.T) {
t.Parallel()
if !fdkaac.EncoderCapabilities().PS {
return
}
fp, err := os.Open(test.TestSingleSample24)
if err != nil {
t.Error(err)
return
}
defer fp.Close()
source, err := flac.NewFormat().Open(fp)
if err != nil {
t.Error(err)
return
}
reader, writer := io.Pipe()
go func() {
defer writer.Close()
options := make(map[string]interface{})
options["mode"] = "hev2"
options["bitrate"] = 32
err = aac.NewFormat().Encode(source, writer, options)
if err != nil {
t.Error(err)
return
}
}()
pipePacketizer := NewAdtsPacketizer(reader)
packetCount := 0
packetBytes := 0
for {
packet := pipePacketizer.GetPacket()
if packet == nil {
break
}
packetCount++
packetBytes += len(packet.GetData())
}
if packetCount != 8463 {
t.Errorf("Wrong Packet Count %d != %d", packetCount, 8463)
}
if packetBytes < 1400000 {
t.Errorf("Wrong Packet Bytes %d < %d", packetBytes, 1400000)
}
}

4
go.mod
View file

@ -6,7 +6,7 @@ require (
git.gammaspectra.live/S.O.N.G/flacgo v0.0.0-20220726151057-28f458bc5391
git.gammaspectra.live/S.O.N.G/go-alac v0.0.0-20220421115623-d0b3bfe57e0f
git.gammaspectra.live/S.O.N.G/go-ebur128 v0.0.0-20220720163421-db0c1911921d
git.gammaspectra.live/S.O.N.G/go-fdkaac v0.0.0-20220515171305-ffb0aafe2a61
git.gammaspectra.live/S.O.N.G/go-fdkaac v0.0.0-20220910135048-823922bd661a
git.gammaspectra.live/S.O.N.G/go-pus v0.0.0-20220721130634-3d5460c48ab6
git.gammaspectra.live/S.O.N.G/go-tta v0.2.1-0.20220226150007-096de1072bd6
git.gammaspectra.live/S.O.N.G/go-vorbis v0.0.0-20220728124510-303b3425eec0
@ -30,5 +30,5 @@ require (
github.com/klauspost/cpuid/v2 v2.1.1 // indirect
github.com/mewkiz/pkg v0.0.0-20220820102221-bbbca16e2a6c // indirect
github.com/youpy/go-wav v0.3.2 // indirect
golang.org/x/sys v0.0.0-20220829200755-d48e67d00261 // indirect
golang.org/x/sys v0.0.0-20220909162455-aba9fc2a8ff2 // indirect
)

8
go.sum
View file

@ -4,8 +4,8 @@ git.gammaspectra.live/S.O.N.G/go-alac v0.0.0-20220421115623-d0b3bfe57e0f h1:CxN7
git.gammaspectra.live/S.O.N.G/go-alac v0.0.0-20220421115623-d0b3bfe57e0f/go.mod h1:f1+h7KOnuM9zcEQp7ri4UaVvgX4m1NFFIXgReIyjGMA=
git.gammaspectra.live/S.O.N.G/go-ebur128 v0.0.0-20220720163421-db0c1911921d h1:3M0GZgm2H1tBkDxCwvQdRvnYhF0/velekO9uhVZsbP0=
git.gammaspectra.live/S.O.N.G/go-ebur128 v0.0.0-20220720163421-db0c1911921d/go.mod h1:5H4eVW9uknpn8REFr+C3ejhvXdncgm/pbGqKGC43gFY=
git.gammaspectra.live/S.O.N.G/go-fdkaac v0.0.0-20220515171305-ffb0aafe2a61 h1:YufhSTCS59H5CStqokGMb60RnSsqrp+GoZvzmC29wm4=
git.gammaspectra.live/S.O.N.G/go-fdkaac v0.0.0-20220515171305-ffb0aafe2a61/go.mod h1:pkWt//S9hLVEQaJDPu/cHHPk8vPpo/0+zHy0me4LIP4=
git.gammaspectra.live/S.O.N.G/go-fdkaac v0.0.0-20220910135048-823922bd661a h1:JQaryqLtNZn1jydhVc7CzcAvO8ZNB4jeZ1B5gJbHWUU=
git.gammaspectra.live/S.O.N.G/go-fdkaac v0.0.0-20220910135048-823922bd661a/go.mod h1:pkWt//S9hLVEQaJDPu/cHHPk8vPpo/0+zHy0me4LIP4=
git.gammaspectra.live/S.O.N.G/go-pus v0.0.0-20220721130634-3d5460c48ab6 h1:xWv02pzrOrQDtNGgcjDw9ZZvJCAuxLbZ6+h5QVVyqvk=
git.gammaspectra.live/S.O.N.G/go-pus v0.0.0-20220721130634-3d5460c48ab6/go.mod h1:vkoHSHVM9p6vAUmXAik0gvaLcIfiQYrD6bQqVpOulUk=
git.gammaspectra.live/S.O.N.G/go-tta v0.2.1-0.20220226150007-096de1072bd6 h1:ITVVisbHPnUclp3PBkCbXFeBhOCBcOjPdgjJ9wRH3TI=
@ -74,8 +74,8 @@ golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73r
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190429190828-d89cdac9e872/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220829200755-d48e67d00261 h1:v6hYoSR9T5oet+pMXwUWkbiVqx/63mlHjefrHmxwfeY=
golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220909162455-aba9fc2a8ff2 h1:wM1k/lXfpc5HdkJJyW9GELpd8ERGdnh8sMGL6Gzq3Ho=
golang.org/x/sys v0.0.0-20220909162455-aba9fc2a8ff2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=