commit 889b534a511e17176284dc1662d4a4128445c1bd from: Kevin Wang via: Oliver Lowe date: Sun Jan 19 10:51:33 2025 UTC fix incorrect pcr base calculation Fixes the base calculation by removing the 7 rightmost reserved and extension bits. commit - a0d3d6fb41f760d18ebc49d3ff47c5a97954f90c commit + 889b534a511e17176284dc1662d4a4128445c1bd blob - 029ceca35b82657bd756542a6ef0674e036f7a4f blob + 72db11c014ac46103ed49db997190ef89a97c01e --- mpegts/codec.go +++ mpegts/codec.go @@ -123,7 +123,7 @@ func parseAdaptationField(buf []byte) *Adaptation { // 5 eeee eeee func parsePCR(a [6]byte) PCR { b := []byte{0, 0, 0, a[0], a[1], a[2], a[3], a[4] & 0x80} - base := binary.BigEndian.Uint64(b) + base := binary.BigEndian.Uint64(b) >> 7 // next 6 bits reserved, so remaining 1 bit in a[5] and all of a[6] have the extension. ext := binary.BigEndian.Uint16([]byte{a[4] & 0x01, a[5]}) return PCR{base, ext}