mirror of
https://github.com/aler9/gortsplib
synced 2025-10-07 16:10:59 +08:00
improve MPEG4AudioLATM (#251)
This commit is contained in:
@@ -711,6 +711,59 @@ func TestUnmarshalMPEG4AudioGenericErrors(t *testing.T) {
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
func TestUnmarshalMPEG4AudioLATMErrors(t *testing.T) {
|
||||
_, err := Unmarshal("audio", 96, "MP4A-LATM/48000/2", map[string]string{
|
||||
"profile-level-id": "aaa",
|
||||
})
|
||||
require.Error(t, err)
|
||||
|
||||
_, err = Unmarshal("audio", 96, "MP4A-LATM/48000/2", map[string]string{
|
||||
"bitrate": "aaa",
|
||||
})
|
||||
require.Error(t, err)
|
||||
|
||||
_, err = Unmarshal("audio", 96, "MP4A-LATM/48000/2", map[string]string{
|
||||
"object": "aaa",
|
||||
})
|
||||
require.Error(t, err)
|
||||
|
||||
_, err = Unmarshal("audio", 96, "MP4A-LATM/48000/2", map[string]string{
|
||||
"object": "120",
|
||||
})
|
||||
require.Error(t, err)
|
||||
|
||||
_, err = Unmarshal("audio", 96, "MP4A-LATM/48000/2", map[string]string{
|
||||
"cpresent": "aaa",
|
||||
})
|
||||
require.Error(t, err)
|
||||
|
||||
_, err = Unmarshal("audio", 96, "MP4A-LATM/48000/2", map[string]string{
|
||||
"config": "aaa",
|
||||
})
|
||||
require.Error(t, err)
|
||||
|
||||
_, err = Unmarshal("audio", 96, "MP4A-LATM/48000/2", map[string]string{
|
||||
"sbr-enabled": "aaa",
|
||||
})
|
||||
require.Error(t, err)
|
||||
|
||||
_, err = Unmarshal("audio", 96, "MP4A-LATM/48000/2", map[string]string{
|
||||
"profile-level-id": "15",
|
||||
"cpresent": "0",
|
||||
"config": "400026103fc0",
|
||||
"sbr-enabled": "1",
|
||||
})
|
||||
require.Error(t, err)
|
||||
|
||||
_, err = Unmarshal("audio", 96, "MP4A-LATM/48000/2", map[string]string{
|
||||
"profile-level-id": "15",
|
||||
"object": "2",
|
||||
"cpresent": "0",
|
||||
"sbr-enabled": "1",
|
||||
})
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
func FuzzUnmarshalH264(f *testing.F) {
|
||||
f.Fuzz(func(t *testing.T, sps string, pktMode string) {
|
||||
Unmarshal("video", 96, "H264/90000", map[string]string{
|
||||
@@ -737,19 +790,6 @@ func FuzzUnmarshalLPCM(f *testing.F) {
|
||||
})
|
||||
}
|
||||
|
||||
func FuzzUnmarshalMPEG4AudioLATM(f *testing.F) {
|
||||
f.Fuzz(func(t *testing.T, a, b, c, d, e, f string) {
|
||||
Unmarshal("audio", 96, "MP4A-LATM/48000/2", map[string]string{
|
||||
"profile-level-id": a,
|
||||
"bitrate": b,
|
||||
"object": c,
|
||||
"cpresent": d,
|
||||
"config": e,
|
||||
"sbr-enabled": f,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
func FuzzUnmarshalMPEG4VideoES(f *testing.F) {
|
||||
f.Fuzz(func(t *testing.T, a, b string) {
|
||||
Unmarshal("video", 96, "MP4V-ES/90000", map[string]string{
|
||||
|
@@ -6,6 +6,7 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/bluenviron/mediacommon/pkg/codecs/mpeg4audio"
|
||||
"github.com/pion/rtp"
|
||||
)
|
||||
|
||||
@@ -17,7 +18,7 @@ type MPEG4AudioLATM struct {
|
||||
Channels int
|
||||
ProfileLevelID int
|
||||
Bitrate *int
|
||||
Object int
|
||||
Object mpeg4audio.ObjectType
|
||||
CPresent *bool
|
||||
Config []byte
|
||||
SBREnabled *bool
|
||||
@@ -84,10 +85,18 @@ func (f *MPEG4AudioLATM) unmarshal(
|
||||
case "object":
|
||||
tmp, err := strconv.ParseInt(val, 10, 64)
|
||||
if err != nil {
|
||||
return fmt.Errorf("invalid object: %v", val)
|
||||
return fmt.Errorf("invalid object type: %v", val)
|
||||
}
|
||||
|
||||
f.Object = int(tmp)
|
||||
f.Object = mpeg4audio.ObjectType(int(tmp))
|
||||
|
||||
switch f.Object {
|
||||
case mpeg4audio.ObjectTypeAACLC,
|
||||
mpeg4audio.ObjectTypeSBR,
|
||||
mpeg4audio.ObjectTypePS:
|
||||
default:
|
||||
return fmt.Errorf("unsupported object type: %d", f.Object)
|
||||
}
|
||||
|
||||
case "cpresent":
|
||||
tmp, err := strconv.ParseInt(val, 10, 64)
|
||||
|
@@ -1,7 +0,0 @@
|
||||
go test fuzz v1
|
||||
string("%20")
|
||||
string("")
|
||||
string("oc\x97\xf3V\x8e\xe0")
|
||||
string("")
|
||||
string("\x0f\x11")
|
||||
string("Z")
|
@@ -1,7 +0,0 @@
|
||||
go test fuzz v1
|
||||
string("")
|
||||
string("")
|
||||
string("")
|
||||
string("")
|
||||
string("")
|
||||
string("0")
|
@@ -1,7 +0,0 @@
|
||||
go test fuzz v1
|
||||
string("")
|
||||
string("")
|
||||
string("oc\x97\xf3V\x8e\xe0")
|
||||
string("")
|
||||
string("9A")
|
||||
string("X")
|
@@ -1,7 +0,0 @@
|
||||
go test fuzz v1
|
||||
string("")
|
||||
string("")
|
||||
string("oc\x97\xf3V\x8e\xe0")
|
||||
string("")
|
||||
string("\x0f\x11")
|
||||
string("0")
|
Reference in New Issue
Block a user