Conversation
|
|
||
| // Section length | ||
| h.SectionLength = uint16(bs[0]&0xf)<<8 | uint16(bs[1]) | ||
| h.SectionLength = uint16(bs[0]&3)<<8 | uint16(bs[1]) |
There was a problem hiding this comment.
FYI: I always use this copy of spec: http://www.itu.int/rec/T-REC-H.222.0-201410-S/en
There was a problem hiding this comment.
On page 50 it says the section_length is only 10 bits:
section_length – This is a 12-bit field, the first two bits of which shall be '00'. The remaining 10 bits specify the number of bytes of the section, starting immediately following the section_length field, and including the CRC. The value in this field shall not exceed 1021 (0x3FD).
There was a problem hiding this comment.
Fair enough, I missed that one. Can you please fix this one in muxer as well?
asticode
left a comment
There was a problem hiding this comment.
To be honest I don't quite get why removing || tableID.isUnknown() would fix your issue here 🤔 Can you explain it a little bit?
data_psi.go
Outdated
| err = fmt.Errorf("astits: parsing PSI table failed: %w", err) | ||
| return | ||
| } | ||
| if stop { |
There was a problem hiding this comment.
Can you just replace this by an else if?
The issue was that when an unknown table was seen previously, parsing stopped altogether. This means that a known table later in the same packet (such as the program_map) was ignored altogether. |
|
OK, got it. In that case, I feel like doing the following would better fix the problem and clean everything behind:
What do you think? |
106bbe5 to
0df190a
Compare
66f3fa5 to
86767b5
Compare

cc #25