diff --git a/pkg/aac/README.md b/pkg/aac/README.md index bb81f736..8e56a9ac 100644 --- a/pkg/aac/README.md +++ b/pkg/aac/README.md @@ -1,17 +1,17 @@ ## AAC-LD and AAC-ELD -Codec | Rate | QuickTime | ffmpeg | VLC -------|------|-----------|--------|---- -AAC-LD | 8000 | yes | no | no -AAC-LD | 16000 | yes | no | no -AAC-LD | 22050 | yes | yes | no -AAC-LD | 24000 | yes | yes | no -AAC-LD | 32000 | yes | yes | no -AAC-ELD | 8000 | yes | no | no -AAC-ELD | 16000 | yes | no | no -AAC-ELD | 22050 | yes | yes | yes -AAC-ELD | 24000 | yes | yes | yes -AAC-ELD | 32000 | yes | yes | yes +| Codec | Rate | QuickTime | ffmpeg | VLC | +|---------|-------|-----------|--------|-----| +| AAC-LD | 8000 | yes | no | no | +| AAC-LD | 16000 | yes | no | no | +| AAC-LD | 22050 | yes | yes | no | +| AAC-LD | 24000 | yes | yes | no | +| AAC-LD | 32000 | yes | yes | no | +| AAC-ELD | 8000 | yes | no | no | +| AAC-ELD | 16000 | yes | no | no | +| AAC-ELD | 22050 | yes | yes | yes | +| AAC-ELD | 24000 | yes | yes | yes | +| AAC-ELD | 32000 | yes | yes | yes | ## Useful links diff --git a/pkg/core/helpers.go b/pkg/core/helpers.go index 98c842e0..ca288834 100644 --- a/pkg/core/helpers.go +++ b/pkg/core/helpers.go @@ -6,8 +6,6 @@ import ( "strconv" "strings" "time" - - "github.com/rs/zerolog/log" ) const ( @@ -77,7 +75,6 @@ func Assert(ok bool) { } func Caller() string { - log.Error().Caller(0).Send() _, file, line, _ := runtime.Caller(1) return file + ":" + strconv.Itoa(line) } diff --git a/pkg/core/track.go b/pkg/core/track.go index a2e2575f..ae4b6382 100644 --- a/pkg/core/track.go +++ b/pkg/core/track.go @@ -10,6 +10,13 @@ import ( "github.com/pion/rtp" ) +type Packet struct { + PayloadType uint8 + Sequence uint16 + Timestamp uint32 + Payload []byte +} + var ErrCantGetTrack = errors.New("can't get track") type Receiver struct { diff --git a/pkg/mpegts/checksum.go b/pkg/mpegts/checksum.go index 82f5357a..e059d06e 100644 --- a/pkg/mpegts/checksum.go +++ b/pkg/mpegts/checksum.go @@ -1,5 +1,7 @@ package mpegts +// have to create this table manually because it is in another endian +// https://github.com/arturvt/TSreader/blob/master/src/br/ufpe/cin/tool/mpegts/CRC32.java var table = [256]uint32{ 0x00000000, 0xB71DC104, 0x6E3B8209, 0xD926430D, 0xDC760413, 0x6B6BC517, 0xB24D861A, 0x0550471E, 0xB8ED0826, 0x0FF0C922, 0xD6D68A2F, 0x61CB4B2B, @@ -46,7 +48,8 @@ var table = [256]uint32{ 0x6D66B4BC, 0xDA7B75B8, 0x035D36B5, 0xB440F7B1, } -func calcCRC32(crc uint32, data []byte) uint32 { +func checksum(data []byte) uint32 { + crc := uint32(0xFFFFFFFF) for _, b := range data { crc = table[b^byte(crc)] ^ (crc >> 8) } diff --git a/pkg/mpegts/writer.go b/pkg/mpegts/writer.go index 188509e3..b8ad54c9 100644 --- a/pkg/mpegts/writer.go +++ b/pkg/mpegts/writer.go @@ -44,7 +44,7 @@ func (w *Writer) MarkChecksum() { } func (w *Writer) WriteChecksum() { - crc := calcCRC32(0xFFFFFFFF, w.b[w.m:]) + crc := checksum(w.b[w.m:]) w.b = append(w.b, byte(crc), byte(crc>>8), byte(crc>>16), byte(crc>>24)) }