Browse Source

formatprocessor: add fuzz tests (#2612)

pull/2616/head
Alessandro Ros 2 years ago committed by GitHub
parent
commit
a2c092ea44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      internal/formatprocessor/h264.go
  2. 6
      internal/formatprocessor/h264_test.go
  3. 4
      internal/formatprocessor/h265.go
  4. 6
      internal/formatprocessor/h265_test.go
  5. 2
      internal/formatprocessor/testdata/fuzz/FuzzRTPH264ExtractSPSPPS/048b606517c23baf
  6. 2
      internal/formatprocessor/testdata/fuzz/FuzzRTPH264ExtractSPSPPS/32e7782636603e29
  7. 2
      internal/formatprocessor/testdata/fuzz/FuzzRTPH264ExtractSPSPPS/caf81e9797b19c76
  8. 2
      internal/formatprocessor/testdata/fuzz/FuzzRTPH264ExtractSPSPPS/f428976a5b2917c0
  9. 2
      internal/formatprocessor/testdata/fuzz/FuzzRTPH265ExtractParams/353ba911ad2dc191
  10. 2
      internal/formatprocessor/testdata/fuzz/FuzzRTPH265ExtractParams/3c3a72c00adac0b3
  11. 2
      internal/formatprocessor/testdata/fuzz/FuzzRTPH265ExtractParams/582528ddfad69eb5
  12. 2
      internal/formatprocessor/testdata/fuzz/FuzzRTPH265ExtractParams/c4389a565e828050

4
internal/formatprocessor/h264.go

@ -13,7 +13,7 @@ import ( @@ -13,7 +13,7 @@ import (
)
// extract SPS and PPS without decoding RTP packets
func rtpH264ExtractSPSPPS(payload []byte) ([]byte, []byte) {
func rtpH264ExtractParams(payload []byte) ([]byte, []byte) {
if len(payload) < 1 {
return nil, nil
}
@ -112,7 +112,7 @@ func (t *formatProcessorH264) createEncoder( @@ -112,7 +112,7 @@ func (t *formatProcessorH264) createEncoder(
}
func (t *formatProcessorH264) updateTrackParametersFromRTPPacket(payload []byte) {
sps, pps := rtpH264ExtractSPSPPS(payload)
sps, pps := rtpH264ExtractParams(payload)
if (sps != nil && !bytes.Equal(sps, t.format.SPS)) ||
(pps != nil && !bytes.Equal(pps, t.format.PPS)) {

6
internal/formatprocessor/h264_test.go

@ -200,3 +200,9 @@ func TestH264EmptyPacket(t *testing.T) { @@ -200,3 +200,9 @@ func TestH264EmptyPacket(t *testing.T) {
// if all NALUs have been removed, no RTP packets must be generated.
require.Equal(t, []*rtp.Packet(nil), unit.RTPPackets)
}
func FuzzRTPH264ExtractParams(f *testing.F) {
f.Fuzz(func(t *testing.T, b []byte) {
rtpH264ExtractParams(b)
})
}

4
internal/formatprocessor/h265.go

@ -13,7 +13,7 @@ import ( @@ -13,7 +13,7 @@ import (
)
// extract VPS, SPS and PPS without decoding RTP packets
func rtpH265ExtractVPSSPSPPS(payload []byte) ([]byte, []byte, []byte) {
func rtpH265ExtractParams(payload []byte) ([]byte, []byte, []byte) {
if len(payload) < 2 {
return nil, nil, nil
}
@ -119,7 +119,7 @@ func (t *formatProcessorH265) createEncoder( @@ -119,7 +119,7 @@ func (t *formatProcessorH265) createEncoder(
}
func (t *formatProcessorH265) updateTrackParametersFromRTPPacket(payload []byte) {
vps, sps, pps := rtpH265ExtractVPSSPSPPS(payload)
vps, sps, pps := rtpH265ExtractParams(payload)
if (vps != nil && !bytes.Equal(vps, t.format.VPS)) ||
(sps != nil && !bytes.Equal(sps, t.format.SPS)) ||

6
internal/formatprocessor/h265_test.go

@ -196,3 +196,9 @@ func TestH265EmptyPacket(t *testing.T) { @@ -196,3 +196,9 @@ func TestH265EmptyPacket(t *testing.T) {
// if all NALUs have been removed, no RTP packets must be generated.
require.Equal(t, []*rtp.Packet(nil), unit.RTPPackets)
}
func FuzzRTPH265ExtractParams(f *testing.F) {
f.Fuzz(func(t *testing.T, b []byte) {
rtpH265ExtractParams(b)
})
}

2
internal/formatprocessor/testdata/fuzz/FuzzRTPH264ExtractSPSPPS/048b606517c23baf vendored

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
go test fuzz v1
[]byte("800")

2
internal/formatprocessor/testdata/fuzz/FuzzRTPH264ExtractSPSPPS/32e7782636603e29 vendored

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
go test fuzz v1
[]byte("8\x00\x00")

2
internal/formatprocessor/testdata/fuzz/FuzzRTPH264ExtractSPSPPS/caf81e9797b19c76 vendored

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
go test fuzz v1
[]byte("")

2
internal/formatprocessor/testdata/fuzz/FuzzRTPH264ExtractSPSPPS/f428976a5b2917c0 vendored

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
go test fuzz v1
[]byte("80")

2
internal/formatprocessor/testdata/fuzz/FuzzRTPH265ExtractParams/353ba911ad2dc191 vendored

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
go test fuzz v1
[]byte("a00")

2
internal/formatprocessor/testdata/fuzz/FuzzRTPH265ExtractParams/3c3a72c00adac0b3 vendored

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
go test fuzz v1
[]byte("a0\x00\x00")

2
internal/formatprocessor/testdata/fuzz/FuzzRTPH265ExtractParams/582528ddfad69eb5 vendored

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
go test fuzz v1
[]byte("0")

2
internal/formatprocessor/testdata/fuzz/FuzzRTPH265ExtractParams/c4389a565e828050 vendored

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
go test fuzz v1
[]byte("a000")
Loading…
Cancel
Save