MCPcopy Create free account
hub / github.com/Monibuca/engine / ReadPMT

Method ReadPMT

codec/mpegts/mpegts.go:508–521  ·  view source on GitHub ↗
(packet *MpegTsPacket, pr io.Reader)

Source from the content-addressed store, hash-verified

506 return
507}
508func (s *MpegTsStream) ReadPMT(packet *MpegTsPacket, pr io.Reader) (err error) {
509 // 在读取PAT中已经将所有频道节目信息(PMT_PID)保存了起来
510 // 接着读取所有TS包里面的PID,找出PID==PMT_PID的TS包,就是PMT表
511 for _, v := range s.PAT.Program {
512 if v.ProgramMapPID == packet.Header.Pid {
513 if len(packet.Payload) == 188 {
514 pr = &util.Crc32Reader{R: pr, Crc32: 0xffffffff}
515 }
516 // Header + PSI + Paylod
517 s.PMT, err = ReadPMT(pr)
518 }
519 }
520 return
521}
522func (s *MpegTsStream) Feed(ts io.Reader) (err error) {
523 var reader bytes.Reader
524 var lr io.LimitedReader

Callers

nothing calls this directly

Calls 1

ReadPMTFunction · 0.85

Tested by

no test coverage detected