rename isom to aacparser

This commit is contained in:
nareix 2016-04-19 21:33:07 +08:00
parent a5ec0acea0
commit dfd71d04bf
12 changed files with 230 additions and 255 deletions

View File

@ -1,10 +1,9 @@
package ts
import (
"io"
"fmt"
"encoding/hex"
"fmt"
"io"
)
var ieeeCrc32Tbl = []uint32{
@ -101,4 +100,3 @@ func (self *Crc32Writer) Write(b []byte) (n int, err error) {
self.Crc32 = updateIeeeCrc32(self.Crc32, b)
return
}

View File

@ -1,4 +1,3 @@
package ts
import (
@ -11,4 +10,3 @@ func TestChecksum(t *testing.T) {
crc := updateIeeeCrc32(0xffffffff, b)
t.Logf("%x", crc)
}

View File

@ -1,11 +1,10 @@
package ts
import (
"io"
"bytes"
"fmt"
"github.com/nareix/mp4/isom"
"github.com/nareix/codec/aacparser"
"io"
)
type Demuxer struct {
@ -33,7 +32,7 @@ func (self *Demuxer) ReadHeader() (err error) {
for {
if self.pmt != nil {
n := 0
for _, track := range(self.Tracks) {
for _, track := range self.Tracks {
if track.payloadReady {
n++
}
@ -58,7 +57,7 @@ func (self *Demuxer) ReadSample() (track *Track, err error) {
}
for {
for _, _track := range(self.Tracks) {
for _, _track := range self.Tracks {
if _track.payloadReady {
track = _track
return
@ -87,13 +86,13 @@ func (self *Demuxer) readPacket() (err error) {
}
} else {
if self.pmt == nil {
for _, entry := range(self.pat.Entries) {
for _, entry := range self.pat.Entries {
if entry.ProgramMapPID == header.PID {
self.pmt = new(PMT)
if *self.pmt, err = ReadPMT(bytes.NewReader(payload)); err != nil {
return
}
for _, info := range(self.pmt.ElementaryStreamInfos) {
for _, info := range self.pmt.ElementaryStreamInfos {
track := &Track{}
track.demuxer = self
@ -113,7 +112,7 @@ func (self *Demuxer) readPacket() (err error) {
}
} else {
for _, track := range(self.Tracks) {
for _, track := range self.Tracks {
if header.PID == track.pid {
if err = track.appendPacket(header, payload); err != nil {
return
@ -126,7 +125,7 @@ func (self *Demuxer) readPacket() (err error) {
return
}
func (self *Track) GetMPEG4AudioConfig() isom.MPEG4AudioConfig {
func (self *Track) GetMPEG4AudioConfig() aacparser.MPEG4AudioConfig {
return self.mpeg4AudioConfig
}
@ -154,7 +153,7 @@ func (self *Track) appendPayload() (err error) {
if self.Type == AAC {
if !self.mpeg4AudioConfig.IsValid() {
if self.mpeg4AudioConfig, _, _, _, err = isom.ReadADTSFrame(self.payload); err != nil {
if self.mpeg4AudioConfig, _, _, _, err = aacparser.ReadADTSFrame(self.payload); err != nil {
return
}
self.mpeg4AudioConfig = self.mpeg4AudioConfig.Complete()
@ -200,4 +199,3 @@ func (self *Track) appendPacket(header TSHeader, payload []byte) (err error) {
return
}

View File

@ -1,16 +1,15 @@
package main
import (
"bytes"
"os"
"io"
ts "../"
"fmt"
"encoding/hex"
"bytes"
"encoding/gob"
"runtime/pprof"
"encoding/hex"
"flag"
"fmt"
"io"
"os"
"runtime/pprof"
)
type GobAllSamples struct {
@ -157,7 +156,7 @@ func readSamples(filename string, ch chan Sample) {
}
}
for _, entry := range(pat.Entries) {
for _, entry := range pat.Entries {
if entry.ProgramMapPID == header.PID {
//fmt.Println("matchs", entry)
if pmt, err = ts.ReadPMT(pr); err != nil {
@ -167,7 +166,7 @@ func readSamples(filename string, ch chan Sample) {
}
}
for _, info = range(pmt.ElementaryStreamInfos) {
for _, info = range pmt.ElementaryStreamInfos {
if info.ElementaryPID == header.PID {
onStreamPayload()
}
@ -395,4 +394,3 @@ func main() {
}
}

View File

@ -1,12 +1,11 @@
package ts
import (
"bytes"
"fmt"
"io"
"github.com/nareix/mp4/isom"
"github.com/nareix/codec/h264parser"
"github.com/nareix/codec/aacparser"
"io"
)
type Muxer struct {
@ -87,7 +86,7 @@ func (self *Muxer) WriteHeader() (err error) {
}
// about to remove
for _, track := range(self.Tracks) {
for _, track := range self.Tracks {
track.spsHasWritten = false
}
@ -106,7 +105,7 @@ func (self *Track) TimeScale() int64 {
return self.timeScale
}
func (self *Track) SetMPEG4AudioConfig(config isom.MPEG4AudioConfig) {
func (self *Track) SetMPEG4AudioConfig(config aacparser.MPEG4AudioConfig) {
self.mpeg4AudioConfig = config
}
@ -129,8 +128,8 @@ func (self *Track) WriteSample(pts int64, dts int64, isKeyFrame bool, data []byt
if self.Type == AAC {
if !isom.IsADTSFrame(data) {
data = append(isom.MakeADTSHeader(self.mpeg4AudioConfig, 1024, len(data)), data...)
if !aacparser.IsADTSFrame(data) {
data = append(aacparser.MakeADTSHeader(self.mpeg4AudioConfig, 1024, len(data)), data...)
}
if false {
fmt.Printf("WriteSample=%x\n", data[:5])
@ -252,4 +251,3 @@ func (self *Track) WriteADTSAACFrame(duration int, frame []byte) (err error) {
self.incPTS(duration)
return
}

View File

@ -1,4 +1,3 @@
package ts
import (
@ -212,7 +211,6 @@ func ReadPSI(r io.Reader) (self PSI, lr *io.LimitedReader, cr *Crc32Reader, err
fmt.Printf("psi: pointer=%d\n", pointer)
}
if pointer != 0 {
if err = ReadDummy(r, int(pointer)); err != nil {
return
@ -684,4 +682,3 @@ func ReadPESHeader(r io.Reader) (res *PESHeader, err error) {
res = self
return
}

View File

@ -1,9 +1,8 @@
package ts
import (
"bytes"
"github.com/nareix/mp4/isom"
"github.com/nareix/codec/aacparser"
)
type Track struct {
@ -16,7 +15,7 @@ type Track struct {
PTS int64
timeScale int64
mpeg4AudioConfig isom.MPEG4AudioConfig
mpeg4AudioConfig aacparser.MPEG4AudioConfig
buf bytes.Buffer
payload []byte
peshdr *PESHeader
@ -36,4 +35,3 @@ const (
H264 = 1
AAC = 2
)

2
ts.go
View File

@ -1,4 +1,3 @@
package ts
import (
@ -116,4 +115,3 @@ func (self FieldsDumper) String() (res string) {
}
return
}

View File

@ -1,4 +1,3 @@
package ts
import (
@ -8,4 +7,3 @@ import (
func TestPESTsConv(t *testing.T) {
t.Logf("%x", PESTsToUInt(0x123))
}

View File

@ -1,13 +1,12 @@
package ts
import (
"io"
"os"
"net"
"fmt"
"unsafe"
"io"
"net"
"os"
"syscall"
"unsafe"
)
type iovec struct {
@ -134,4 +133,3 @@ func newVecWriter(w io.Writer) (vecw *vecWriter) {
}
return
}

View File

@ -1,10 +1,9 @@
package ts
import (
"bytes"
"fmt"
"io"
"bytes"
)
var DebugWriter = false
@ -701,4 +700,3 @@ func (self *SimpleH264Writer) WriteNALU(sync bool, duration int, nalu []byte) (e
return
}

View File

@ -1,10 +1,9 @@
package ts
import (
"testing"
"encoding/hex"
"bytes"
"encoding/hex"
"testing"
)
func TestWriteTSHeader(t *testing.T) {
@ -16,4 +15,3 @@ func TestWriteTSHeader(t *testing.T) {
w.Write([]byte{'h', 'e', 'l', 'o'}[:], false)
t.Logf("\n%s", hex.Dump(bw.Bytes()))
}