From b1ef54e2b4dc68535fcaed42f0545629dabbc87e Mon Sep 17 00:00:00 2001 From: Aman Karmani Date: Fri, 21 Jan 2022 13:59:44 -0800 Subject: [PATCH 1/2] pes: read available PES data when truncated --- data_pes.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/data_pes.go b/data_pes.go index 9b3493f..2253444 100644 --- a/data_pes.go +++ b/data_pes.go @@ -129,6 +129,12 @@ func parsePESData(i *astikit.BytesIterator) (d *PESData, err error) { return } + var dataAvailable = i.Len() - dataStart + if int(d.Header.PacketLength) > dataAvailable { + dataEnd = dataAvailable + dataStart + d.Header.PacketLength = uint16(dataAvailable) + } + // Seek to data i.Seek(dataStart) From 8d2fa2e83324dab90ab7743cafe6b03127660d9e Mon Sep 17 00:00:00 2001 From: Eric Lindvall Date: Mon, 14 Nov 2022 15:58:11 -0800 Subject: [PATCH 2/2] Add extra empty bytes to the buffer to make tests pass --- data_pes_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data_pes_test.go b/data_pes_test.go index 848df22..78e9be6 100644 --- a/data_pes_test.go +++ b/data_pes_test.go @@ -386,6 +386,7 @@ func pesWithHeaderBytes() []byte { pesTestCases[1].headerBytesFunc(w, true, true) pesTestCases[1].optionalHeaderBytesFunc(w, true, true) pesTestCases[1].bytesFunc(w, true, true) + buf.Write(make([]byte, 100)) // Add some extra bytes return buf.Bytes() } @@ -402,6 +403,7 @@ func TestParsePESData(t *testing.T) { tc.headerBytesFunc(w, true, true) tc.optionalHeaderBytesFunc(w, true, true) tc.bytesFunc(w, true, true) + buf.Write(make([]byte, 100)) // Add some extra bytes d, err := parsePESData(astikit.NewBytesIterator(buf.Bytes())) assert.NoError(t, err) assert.Equal(t, tc.pesData, d)