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"
|
||||
|
||||
"bitbucket.org/ausocean/av/stream/mts/pes"
|
||||
"bitbucket.org/ausocean/av/stream/mts/psi"
|
||||
)
|
||||
|
||||
var (
|
||||
patTable []byte
|
||||
pmtTable []byte
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -43,66 +49,13 @@ const (
|
|||
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() {
|
||||
// Generate IEEE polynomial table
|
||||
// for the big-endian algorithm.
|
||||
crcTable := crc32_MakeTable(bits.Reverse32(crc32.IEEE))
|
||||
|
||||
patTable = completePSI(patTable, crcTable)
|
||||
pmtTable = completePSI(pmtTable, crcTable)
|
||||
patTable = completePSI(psi.StdPat, crcTable)
|
||||
pmtTable = completePSI(psi.StdPmt, crcTable)
|
||||
}
|
||||
|
||||
func completePSI(psi []byte, tab *crc32.Table) []byte {
|
||||
|
|
Loading…
Reference in New Issue