Skip to content

Commit

Permalink
mpegts: improve coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
aler9 committed Sep 19, 2023
1 parent 74d6902 commit 38c3ab4
Show file tree
Hide file tree
Showing 20 changed files with 190 additions and 434 deletions.
4 changes: 2 additions & 2 deletions pkg/formats/mpegts/reader.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ func NewReader(br io.Reader) (*Reader, error) {
var track Track
err := track.unmarshal(dem, es)
if err != nil {
if err == errUnsupportedTrack {
if err == errUnsupportedCodec {
continue
}
return nil, err
Expand All @@ -85,7 +85,7 @@ func NewReader(br io.Reader) (*Reader, error) {
}

if tracks == nil {
return nil, fmt.Errorf("no supported tracks found")
return nil, fmt.Errorf("no tracks with supported codecs found")
}

// rewind demuxer
Expand Down
196 changes: 106 additions & 90 deletions pkg/formats/mpegts/reader_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -944,100 +944,116 @@ func TestReader(t *testing.T) {
}

func FuzzReader(f *testing.F) {
f.Add(true, []byte{
0x00, 0x00, 0x01, 0xe0, 0x00, 0x00, 0x80, 0x80,
0x05, 0x21, 0x00, 0x0b, 0x7e, 0x41, 0x00, 0x00,
0x00, 0x01,
0x67, 0x42, 0xc0, 0x28, 0xd9, 0x00, 0x78, 0x02,
0x27, 0xe5, 0x84, 0x00, 0x00, 0x03, 0x00, 0x04,
0x00, 0x00, 0x03, 0x00, 0xf0, 0x3c, 0x60, 0xc9,
0x20,
0x00, 0x00, 0x00, 0x01, 0x08,
0x00, 0x00, 0x00, 0x01, 0x05,
})

f.Fuzz(func(t *testing.T, pid bool, b []byte) {
for _, ca := range casesReadWriter {
var buf bytes.Buffer
mux := astits.NewMuxer(context.Background(), &buf)

// PMT
mux.WritePacket(&astits.Packet{ //nolint:errcheck
Header: astits.PacketHeader{
HasPayload: true,
PayloadUnitStartIndicator: true,
PID: 0,
},
Payload: append([]byte{
0x00, 0x00, 0xb0, 0x0d, 0x00, 0x00, 0xc1, 0x00,
0x00, 0x00, 0x01, 0xf0, 0x00, 0x71, 0x10, 0xd8,
0x78,
}, bytes.Repeat([]byte{0xff}, 167)...),
})

// PAT
mux.WritePacket(&astits.Packet{ //nolint:errcheck
Header: astits.PacketHeader{
HasPayload: true,
PayloadUnitStartIndicator: true,
PID: 4096,
},
Payload: append([]byte{
0x00, 0x02, 0xb0, 0x17, 0x00, 0x01, 0xc1, 0x00,
0x00, 0xe1, 0x00, 0xf0, 0x00, 0x1b, 0xe1, 0x00,
0xf0, 0x00, 0x0f, 0xe1, 0x01, 0xf0, 0x00, 0x2f,
0x44, 0xb9, 0x9b,
}, bytes.Repeat([]byte{0xff}, 157)...),
})

// AAC config
mux.WritePacket(&astits.Packet{ //nolint:errcheck
AdaptationField: &astits.PacketAdaptationField{
Length: 158,
StuffingLength: 157,
RandomAccessIndicator: true,
},
Header: astits.PacketHeader{
HasAdaptationField: true,
HasPayload: true,
PayloadUnitStartIndicator: true,
PID: 257,
},
Payload: []byte{
0x00, 0x00, 0x01, 0xc0, 0x00, 0x13, 0x80, 0x80,
0x05, 0x21, 0x00, 0x11, 0x3d, 0x61, 0xff, 0xf1,
0x50, 0x80, 0x01, 0x7f, 0xfc, 0x01, 0x02, 0x03,
0x04,
},
})

r, err := NewReader(&buf)
if err != nil {
panic(err)
for _, pkt := range ca.packets {
mux.WritePacket(pkt) //nolint:errcheck
}
f.Add(buf.Bytes())
}

// PES
mux.WritePacket(&astits.Packet{ //nolint:errcheck
AdaptationField: &astits.PacketAdaptationField{
Length: 130,
StuffingLength: 129,
RandomAccessIndicator: true,
},
Header: astits.PacketHeader{
HasAdaptationField: true,
HasPayload: true,
PayloadUnitStartIndicator: true,
PID: func() uint16 {
if pid {
return 256
}
return 257
}(),
},
Payload: b,
})
f.Add([]byte{
0x47, 0x40, 0x00, 0x10, 0x00, 0x00, 0xb0, 0x0d,
0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x01, 0xf0,
0x00, 0x71, 0x10, 0xd8, 0x78, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x47, 0x50, 0x00, 0x10,
0x00, 0x02, 0xb0, 0x12, 0x00, 0x01, 0xc1, 0x00,
0x00, 0xe1, 0x00, 0xf0, 0x00, 0x06, 0xe1, 0x00,
0xf0, 0x00, 0xbe, 0x7f, 0xa0, 0x52, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
})

f.Add([]byte{
0x47, 0x40, 0x00, 0x10, 0x00, 0x00, 0xb0, 0x0d,
0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x01, 0xf0,
0x00, 0x71, 0x10, 0xd8, 0x78, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0x47, 0x50, 0x00, 0x10,
0x00, 0x02, 0xb0, 0x18, 0x00, 0x01, 0xc1, 0x00,
0x00, 0xe1, 0x00, 0xf0, 0x00, 0x06, 0xe1, 0x00,
0xf0, 0x06, 0x05, 0x04, 0x4f, 0x70, 0x75, 0x73,
0xc7, 0x15, 0x35, 0x31, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
})

r.Read() //nolint:errcheck
r.Read() //nolint:errcheck
r.Read() //nolint:errcheck
f.Fuzz(func(t *testing.T, b []byte) {
NewReader(bytes.NewReader(b)) //nolint:errcheck
})
}
2 changes: 2 additions & 0 deletions pkg/formats/mpegts/testdata/fuzz/FuzzReader/022c77ccf057ec93
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
go test fuzz v1
[]byte("G \x00X\x00\x02\xb0\x12\x00\x01\xc1\x00\x00\xe1\x01\xf0\x00\x81\xe1\x01\xf0\x00\x12q\xfd\xb7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000GA\x010\a0000000\x00\x00\x010\x00000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
2 changes: 2 additions & 0 deletions pkg/formats/mpegts/testdata/fuzz/FuzzReader/582528ddfad69eb5
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
go test fuzz v1
[]byte("0")
3 changes: 0 additions & 3 deletions pkg/formats/mpegts/testdata/fuzz/FuzzReader/5a37383f84ff4d3a

This file was deleted.

2 changes: 2 additions & 0 deletions pkg/formats/mpegts/testdata/fuzz/FuzzReader/5d7192f4362df3d0
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
go test fuzz v1
[]byte("G \x00X\x00\x02\xb0\x12\x00\x01\xc1\x00\x00\xe1\x01\xf0\x00\x81\xe1\x01\xf0\x00\x12q\xfd\xb7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000G000\a0000000\x00\x00\x010\x00000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
2 changes: 2 additions & 0 deletions pkg/formats/mpegts/testdata/fuzz/FuzzReader/6271941771456d92
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
go test fuzz v1
[]byte("G \x00X\x00\x02\xb0\x12\x00\x01\xc1\x00\x00\xe1\x01\xf0\x00\x81\xe1\x01\xf0\x00\x12q\xfd\xb7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000GA\x010\a0000000\x00\x00\x010\x01000\x0500000\vw00A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000G!\x01\x110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000G0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
2 changes: 2 additions & 0 deletions pkg/formats/mpegts/testdata/fuzz/FuzzReader/8cc39c906e309f5a
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
go test fuzz v1
[]byte("G \x00X\x00\x02\xb0\x12\x00\x01\xc1\x00\x00\xe1\x01\xf0\x00\x81\xe1\x01\xf0\x00\x12q\xfd\xb7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
2 changes: 2 additions & 0 deletions pkg/formats/mpegts/testdata/fuzz/FuzzReader/8d979286ffb234a2
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
go test fuzz v1
[]byte("G \x00X\x00\x02\xb0\x12\x00\x01\xc1\x00\x00\xe1\x01\xf0\x00\x0f\xe1\x01\xf0\x00\xecⰔ000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000G000\x99000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\x00\x00\x010\x00\x1800\x05000000000000000000000")
3 changes: 0 additions & 3 deletions pkg/formats/mpegts/testdata/fuzz/FuzzReader/9136540beb330fb2

This file was deleted.

3 changes: 0 additions & 3 deletions pkg/formats/mpegts/testdata/fuzz/FuzzReader/916aafb26a91fa4d

This file was deleted.

2 changes: 2 additions & 0 deletions pkg/formats/mpegts/testdata/fuzz/FuzzReader/aea37d5bad1aed15
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
go test fuzz v1
[]byte("G \x00X\x00\x02\xb0\x12\x00\x01\xc1\x00\x00\xe1\x01\xf0\x00\x0f\xe1\x01\xf0\x00\xecⰔ000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000GA\x010\x99000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\x00\x00\x010\x00\x1800\x05000000000000000000000")
2 changes: 2 additions & 0 deletions pkg/formats/mpegts/testdata/fuzz/FuzzReader/b17cdef4fbcd691c
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
go test fuzz v1
[]byte("G \x00X\x00\x02\xb0\x1c\x00\x01\xc1\x00\x00\xe1\x01\xf0\x00\x06\xe1\x01\xf0\n\x05\x04Opus\x7f\x02\x80\x02\xcc!=X00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
2 changes: 2 additions & 0 deletions pkg/formats/mpegts/testdata/fuzz/FuzzReader/dd0310b1ecd6a346
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
go test fuzz v1
[]byte("G \x00X\x00\x02\xb0\x12\x00\x01\xc1\x00\x00\xe1\x01\xf0\x00\x0f\xe1\x01\xf0\x00\xecⰔ000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")
3 changes: 0 additions & 3 deletions pkg/formats/mpegts/testdata/fuzz/FuzzReader/e48c5afcad56469e

This file was deleted.

This file was deleted.

This file was deleted.

4 changes: 2 additions & 2 deletions pkg/formats/mpegts/track.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const (
opusIdentifier = 'O'<<24 | 'p'<<16 | 'u'<<8 | 's'
)

var errUnsupportedTrack = errors.New("unsupported track")
var errUnsupportedCodec = errors.New("unsupported codec")

func findMPEG4AudioConfig(dem *astits.Demuxer, pid uint16) (*mpeg4audio.Config, error) {
for {
Expand Down Expand Up @@ -174,5 +174,5 @@ func (t *Track) unmarshal(dem *astits.Demuxer, es *astits.PMTElementaryStream) e
}
}

return errUnsupportedTrack
return errUnsupportedCodec
}
86 changes: 0 additions & 86 deletions pkg/formats/mpegts/track_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,92 +12,6 @@ import (
"github.com/bluenviron/mediacommon/pkg/codecs/mpeg4audio"
)

func FuzzTrackUnmarshal(f *testing.F) {
f.Add( // opus
[]byte{
0x00, 0x02, 0xb0, 0x1c, 0x00, 0x01, 0xc1, 0x00,
0x00, 0xe1, 0x01, 0xf0, 0x00, 0x06, 0xe1, 0x01,
0xf0, 0x0a, 0x05, 0x04, 0x4f, 0x70, 0x75, 0x73,
0x7f, 0x02, 0x80, 0x02, 0xcc, 0x21, 0x3d, 0x58,
},
[]byte{},
)

f.Add( // mpeg-4 audio
[]byte{
0x00, 0x02, 0xb0, 0x12, 0x00, 0x01, 0xc1, 0x00,
0x00, 0xe1, 0x01, 0xf0, 0x00, 0x0f, 0xe1, 0x01,
0xf0, 0x00, 0xec, 0xe2, 0xb0, 0x94,
},
[]byte{
0x00, 0x00, 0x01, 0xc0, 0x00, 0x18, 0x80, 0x80,
0x05, 0x21, 0x00, 0x01, 0x00, 0x01, 0xff, 0xf1,
0x4c, 0x80, 0x01, 0x1f, 0xfc, 0x03, 0xff, 0xf1,
0x4c, 0x80, 0x01, 0x1f, 0xfc, 0x02,
},
)

f.Fuzz(func(t *testing.T, a []byte, b []byte) {
if len(a) > 184 {
return
}

var buf bytes.Buffer
mux := astits.NewMuxer(context.Background(), &buf)

// PMT
mux.WritePacket(&astits.Packet{ //nolint:errcheck
Header: astits.PacketHeader{
HasPayload: true,
PayloadUnitStartIndicator: true,
PID: 0,
},
Payload: append([]byte{
0x00, 0x00, 0xb0, 0x0d, 0x00, 0x00, 0xc1, 0x00,
0x00, 0x00, 0x01, 0xf0, 0x00, 0x71, 0x10, 0xd8,
0x78,
}, bytes.Repeat([]byte{0xff}, 167)...),
})

// PAT
mux.WritePacket(&astits.Packet{ //nolint:errcheck
Header: astits.PacketHeader{
HasPayload: true,
PayloadUnitStartIndicator: true,
PID: 4096,
},
Payload: append(a, bytes.Repeat([]byte{0xff}, 184-len(a))...),
})

// PES
mux.WritePacket(&astits.Packet{ //nolint:errcheck
AdaptationField: &astits.PacketAdaptationField{
Length: 130,
StuffingLength: 129,
RandomAccessIndicator: true,
},
Header: astits.PacketHeader{
HasAdaptationField: true,
HasPayload: true,
PayloadUnitStartIndicator: true,
PID: 257,
},
Payload: b,
})

dem := astits.NewDemuxer(
context.Background(),
&buf,
astits.DemuxerOptPacketSize(188))

pmt, err := findPMT(dem)
if err == nil {
var track Track
track.unmarshal(dem, pmt.ElementaryStreams[0]) //nolint:errcheck
}
})
}

func TestTrackUnmarshalExternal(t *testing.T) {
for _, ca := range []struct {
name string
Expand Down
Loading

0 comments on commit 38c3ab4

Please sign in to comment.