mirror of
https://github.com/bluenviron/mediamtx.git
synced 2025-12-24 12:01:56 -08:00
formatprocessor: add fuzz tests (#2612)
This commit is contained in:
parent
7fb3b749d5
commit
a2c092ea44
12 changed files with 32 additions and 4 deletions
|
|
@ -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(
|
|||
}
|
||||
|
||||
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)) {
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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(
|
|||
}
|
||||
|
||||
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)) ||
|
||||
|
|
|
|||
|
|
@ -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
Normal file
2
internal/formatprocessor/testdata/fuzz/FuzzRTPH264ExtractSPSPPS/048b606517c23baf
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
go test fuzz v1
|
||||
[]byte("800")
|
||||
2
internal/formatprocessor/testdata/fuzz/FuzzRTPH264ExtractSPSPPS/32e7782636603e29
vendored
Normal file
2
internal/formatprocessor/testdata/fuzz/FuzzRTPH264ExtractSPSPPS/32e7782636603e29
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
go test fuzz v1
|
||||
[]byte("8\x00\x00")
|
||||
2
internal/formatprocessor/testdata/fuzz/FuzzRTPH264ExtractSPSPPS/caf81e9797b19c76
vendored
Normal file
2
internal/formatprocessor/testdata/fuzz/FuzzRTPH264ExtractSPSPPS/caf81e9797b19c76
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
go test fuzz v1
|
||||
[]byte("")
|
||||
2
internal/formatprocessor/testdata/fuzz/FuzzRTPH264ExtractSPSPPS/f428976a5b2917c0
vendored
Normal file
2
internal/formatprocessor/testdata/fuzz/FuzzRTPH264ExtractSPSPPS/f428976a5b2917c0
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
go test fuzz v1
|
||||
[]byte("80")
|
||||
2
internal/formatprocessor/testdata/fuzz/FuzzRTPH265ExtractParams/353ba911ad2dc191
vendored
Normal file
2
internal/formatprocessor/testdata/fuzz/FuzzRTPH265ExtractParams/353ba911ad2dc191
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
go test fuzz v1
|
||||
[]byte("a00")
|
||||
2
internal/formatprocessor/testdata/fuzz/FuzzRTPH265ExtractParams/3c3a72c00adac0b3
vendored
Normal file
2
internal/formatprocessor/testdata/fuzz/FuzzRTPH265ExtractParams/3c3a72c00adac0b3
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
go test fuzz v1
|
||||
[]byte("a0\x00\x00")
|
||||
2
internal/formatprocessor/testdata/fuzz/FuzzRTPH265ExtractParams/582528ddfad69eb5
vendored
Normal file
2
internal/formatprocessor/testdata/fuzz/FuzzRTPH265ExtractParams/582528ddfad69eb5
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
go test fuzz v1
|
||||
[]byte("0")
|
||||
2
internal/formatprocessor/testdata/fuzz/FuzzRTPH265ExtractParams/c4389a565e828050
vendored
Normal file
2
internal/formatprocessor/testdata/fuzz/FuzzRTPH265ExtractParams/c4389a565e828050
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
go test fuzz v1
|
||||
[]byte("a000")
|
||||
Loading…
Add table
Add a link
Reference in a new issue