mirror of https://bitbucket.org/ausocean/av.git
psi: starting to remove psi stuff from encoder.go and put into psi package
This commit is contained in:
parent
9e7b65ac6a
commit
43abed9522
|
@ -36,6 +36,12 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"bitbucket.org/ausocean/av/stream/mts/pes"
|
"bitbucket.org/ausocean/av/stream/mts/pes"
|
||||||
|
"bitbucket.org/ausocean/av/stream/mts/psi"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
patTable []byte
|
||||||
|
pmtTable []byte
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -43,66 +49,13 @@ const (
|
||||||
psiSendCount = 100
|
psiSendCount = 100
|
||||||
)
|
)
|
||||||
|
|
||||||
// TODO: Finish off mts/psi so that we can create pat and pmt tables instead
|
|
||||||
// of hardcoding.
|
|
||||||
var (
|
|
||||||
patTable = []byte{
|
|
||||||
0x00, // pointer
|
|
||||||
|
|
||||||
// ---- section included in data sent to CRC32 during check
|
|
||||||
// table header
|
|
||||||
0x00, // table id
|
|
||||||
0xb0, // section syntax indicator:1|private bit:1|reserved:2|section length:2|more bytes...:2
|
|
||||||
0x0d, // more bytes...
|
|
||||||
|
|
||||||
// syntax section
|
|
||||||
0x00, 0x01, // table id extension
|
|
||||||
0xc1, // reserved bits:3|version:5|use now:1
|
|
||||||
0x00, // section number
|
|
||||||
0x00, // last section number
|
|
||||||
// table data
|
|
||||||
0x00, 0x01, // Program number
|
|
||||||
0xf0, 0x00, // reserved:3|program map PID:13
|
|
||||||
|
|
||||||
// 0x2a, 0xb1, 0x04, 0xb2, // CRC
|
|
||||||
// ----
|
|
||||||
}
|
|
||||||
pmtTable = []byte{
|
|
||||||
0x00, // pointer
|
|
||||||
|
|
||||||
// ---- section included in data sent to CRC32 during check
|
|
||||||
// table header
|
|
||||||
0x02, // table id
|
|
||||||
0xb0, // section syntax indicator:1|private bit:1|reserved:2|section length:2|more bytes...:2
|
|
||||||
0x12, // more bytes...
|
|
||||||
|
|
||||||
// syntax section
|
|
||||||
0x00, 0x01, // table id extension
|
|
||||||
0xc1, // reserved bits:3|version:5|use now:1
|
|
||||||
0x00, // section number
|
|
||||||
0x00, // last section number
|
|
||||||
// table data
|
|
||||||
0xe1, 0x00, // reserved:3|PCR PID:13
|
|
||||||
0xf0, 0x00, // reserved:4|unused:2|program info length:10
|
|
||||||
// No program descriptors since program info length is 0.
|
|
||||||
// elementary stream info data
|
|
||||||
0x1b, // stream type
|
|
||||||
0xe1, 0x00, // reserved:3|elementary PID:13
|
|
||||||
0xf0, 0x00, // reserved:4|unused:2|ES info length:10
|
|
||||||
// No elementary stream descriptors since ES info length is 0.
|
|
||||||
|
|
||||||
// 0x15, 0xbd, 0x4d, 0x56, // CRC
|
|
||||||
// ----
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
// Generate IEEE polynomial table
|
// Generate IEEE polynomial table
|
||||||
// for the big-endian algorithm.
|
// for the big-endian algorithm.
|
||||||
crcTable := crc32_MakeTable(bits.Reverse32(crc32.IEEE))
|
crcTable := crc32_MakeTable(bits.Reverse32(crc32.IEEE))
|
||||||
|
|
||||||
patTable = completePSI(patTable, crcTable)
|
patTable = completePSI(psi.StdPat, crcTable)
|
||||||
pmtTable = completePSI(pmtTable, crcTable)
|
pmtTable = completePSI(psi.StdPmt, crcTable)
|
||||||
}
|
}
|
||||||
|
|
||||||
func completePSI(psi []byte, tab *crc32.Table) []byte {
|
func completePSI(psi []byte, tab *crc32.Table) []byte {
|
||||||
|
|
Loading…
Reference in New Issue