Upgrade github.com/edgeware/mp4ff to github.com/Eyevinn/mp4ff

This commit is contained in:
DataHoarder 2023-01-28 03:42:57 +01:00
parent d0b3bfe57e
commit 7bab2d4f93
Signed by: DataHoarder
SSH key fingerprint: SHA256:OLTRf6Fl87G52SiR7sWLGNzlJt4WOX+tfI2yxo0z7xk
4 changed files with 36 additions and 18 deletions

View file

@ -1,6 +1,7 @@
package go_alac package go_alac
import ( import (
"fmt"
"io/ioutil" "io/ioutil"
"os" "os"
"testing" "testing"
@ -29,13 +30,30 @@ func TestEncode(t *testing.T) {
} }
defer o.Close() defer o.Close()
writeTestCase := func(n int, cookie []byte, data []byte) {
out, err := os.Create(fmt.Sprintf("/home/shoghicp/radio/alac_afl/test/packets_%d.alac", n))
if err != nil {
t.Error(err)
return
}
defer out.Close()
out.Write(cookie)
out.Write(data)
}
encoder := NewFrameEncoder(44100, 2, 16, false) encoder := NewFrameEncoder(44100, 2, 16, false)
o.Write(encoder.GetMagicCookie())
packetSize := encoder.GetInputSize() packetSize := encoder.GetInputSize()
packets := 0
for len(data) > packetSize { for len(data) > packetSize {
resultPacket := encoder.WritePacket(data[:packetSize]) resultPacket := encoder.WritePacket(data[:packetSize])
o.Write(resultPacket) o.Write(resultPacket)
data = data[packetSize:] data = data[packetSize:]
writeTestCase(packets, encoder.GetMagicCookie(), resultPacket)
packets++
} }
return
if len(data) > 0 { if len(data) > 0 {
resultPacket := encoder.WritePacket(data) resultPacket := encoder.WritePacket(data)

2
go.mod
View file

@ -2,4 +2,4 @@ module git.gammaspectra.live/S.O.N.G/go-alac
go 1.18 go 1.18
require github.com/edgeware/mp4ff v0.27.0 require github.com/Eyevinn/mp4ff v0.33.2

8
go.sum
View file

@ -1,4 +1,4 @@
github.com/edgeware/mp4ff v0.27.0 h1:Lv773H6c4pUt3Zj9z44TOICv6fjd6gKzi1sVl8GbcYE= github.com/Eyevinn/mp4ff v0.33.2 h1:6b4OCWyBQim+VrL3bNYkqxumnqGdJEGnls2JBMWvKLs=
github.com/edgeware/mp4ff v0.27.0/go.mod h1:6VHE5CTkpDseIg775+rh8BfnTvqjMnVbz5EDU4QwSdc= github.com/Eyevinn/mp4ff v0.33.2/go.mod h1:w/6GSa5ghZ1VavzJK6McQ2/flx8mKtcrKDr11SsEweA=
github.com/go-test/deep v1.0.6 h1:UHSEyLZUwX9Qoi99vVwvewiMC8mM2bf7XEM2nqvzEn8= github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM=
github.com/go-test/deep v1.0.6/go.mod h1:QV8Hv/iy04NyLBxAdO9njL0iVPN1S4d/A3NVv1V36o8= github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE=

26
mp4.go
View file

@ -2,8 +2,8 @@ package go_alac
import ( import (
"bytes" "bytes"
"github.com/edgeware/mp4ff/bits" "github.com/Eyevinn/mp4ff/bits"
"github.com/edgeware/mp4ff/mp4" "github.com/Eyevinn/mp4ff/mp4"
"io" "io"
"time" "time"
) )
@ -21,21 +21,21 @@ type FormatEncoder struct {
seqNumber uint32 seqNumber uint32
} }
type alacBox struct { type AlacBox struct {
cookie []byte Cookie []byte
} }
func (b *alacBox) Type() string { func (b *AlacBox) Type() string {
return "alac" return "alac"
} }
// Size - calculated size of box // Size - calculated size of box
func (b *alacBox) Size() uint64 { func (b *AlacBox) Size() uint64 {
return uint64(12 + len(b.cookie)) return uint64(12 + len(b.Cookie))
} }
// Encode - write box to w // Encode - write box to w
func (b *alacBox) Encode(w io.Writer) error { func (b *AlacBox) Encode(w io.Writer) error {
sw := bits.NewFixedSliceWriter(int(b.Size())) sw := bits.NewFixedSliceWriter(int(b.Size()))
err := b.EncodeSW(sw) err := b.EncodeSW(sw)
if err != nil { if err != nil {
@ -45,17 +45,17 @@ func (b *alacBox) Encode(w io.Writer) error {
return err return err
} }
func (b *alacBox) EncodeSW(sw bits.SliceWriter) error { func (b *AlacBox) EncodeSW(sw bits.SliceWriter) error {
err := mp4.EncodeHeaderSW(b, sw) err := mp4.EncodeHeaderSW(b, sw)
if err != nil { if err != nil {
return err return err
} }
sw.WriteUint32(0) //version sw.WriteUint32(0) //version
sw.WriteBytes(b.cookie) sw.WriteBytes(b.Cookie)
return sw.AccError() return sw.AccError()
} }
func (b *alacBox) Info(w io.Writer, specificBoxLevels, indent, indentStep string) error { func (b *AlacBox) Info(w io.Writer, specificBoxLevels, indent, indentStep string) error {
return nil return nil
} }
@ -81,8 +81,8 @@ func NewFormatEncoder(writer io.Writer, sampleRate, channels, bitDepth int, fast
stsd := trak.Mdia.Minf.Stbl.Stsd stsd := trak.Mdia.Minf.Stbl.Stsd
//TODO: this does not work with 96kHz freq etc. //TODO: this does not work with 96kHz freq etc.
mp4a := mp4.CreateAudioSampleEntryBox("alac", uint16(channels), uint16(bitDepth), uint16(sampleRate), &alacBox{ mp4a := mp4.CreateAudioSampleEntryBox("alac", uint16(channels), uint16(bitDepth), uint16(sampleRate), &AlacBox{
cookie: e.encoder.GetMagicCookie(), Cookie: e.encoder.GetMagicCookie(),
}) })
stsd.AddChild(mp4a) stsd.AddChild(mp4a)