return an error in case an AAC track has no sizelength

This commit is contained in:
aler9
2022-04-15 13:07:15 +02:00
parent 6781d4a92b
commit 25c296f1dd
2 changed files with 30 additions and 5 deletions

View File

@@ -141,6 +141,10 @@ func newTrackAACFromMediaDescription(
return nil, fmt.Errorf("config is missing (%v)", v) return nil, fmt.Errorf("config is missing (%v)", v)
} }
if track.sizeLength == 0 {
return nil, fmt.Errorf("sizelength is missing (%v)", v)
}
return track, nil return track, nil
} }

View File

@@ -388,7 +388,7 @@ func TestTrackNewFromMediaDescriptionErrors(t *testing.T) {
err string err string
}{ }{
{ {
"generic no formats", "no formats",
&psdp.MediaDescription{ &psdp.MediaDescription{
MediaName: psdp.MediaName{ MediaName: psdp.MediaName{
Media: "audio", Media: "audio",
@@ -399,7 +399,7 @@ func TestTrackNewFromMediaDescriptionErrors(t *testing.T) {
"unable to get clock rate: no formats provided", "unable to get clock rate: no formats provided",
}, },
{ {
"generic no rtpmap", "no rtpmap",
&psdp.MediaDescription{ &psdp.MediaDescription{
MediaName: psdp.MediaName{ MediaName: psdp.MediaName{
Media: "video", Media: "video",
@@ -410,7 +410,7 @@ func TestTrackNewFromMediaDescriptionErrors(t *testing.T) {
"unable to get clock rate: attribute 'rtpmap' not found", "unable to get clock rate: attribute 'rtpmap' not found",
}, },
{ {
"generic invalid clockrate 1", "invalid clockrate 1",
&psdp.MediaDescription{ &psdp.MediaDescription{
MediaName: psdp.MediaName{ MediaName: psdp.MediaName{
Media: "video", Media: "video",
@@ -427,7 +427,7 @@ func TestTrackNewFromMediaDescriptionErrors(t *testing.T) {
"unable to get clock rate: invalid rtpmap (96)", "unable to get clock rate: invalid rtpmap (96)",
}, },
{ {
"generic invalid clockrate 2", "invalid clockrate 2",
&psdp.MediaDescription{ &psdp.MediaDescription{
MediaName: psdp.MediaName{ MediaName: psdp.MediaName{
Media: "video", Media: "video",
@@ -444,7 +444,7 @@ func TestTrackNewFromMediaDescriptionErrors(t *testing.T) {
"unable to get clock rate: invalid rtpmap (96 mpeg4-generic)", "unable to get clock rate: invalid rtpmap (96 mpeg4-generic)",
}, },
{ {
"generic invalid clockrate 3", "invalid clockrate 3",
&psdp.MediaDescription{ &psdp.MediaDescription{
MediaName: psdp.MediaName{ MediaName: psdp.MediaName{
Media: "video", Media: "video",
@@ -582,6 +582,27 @@ func TestTrackNewFromMediaDescriptionErrors(t *testing.T) {
}, },
"invalid AAC config (aa)", "invalid AAC config (aa)",
}, },
{
"aac missing sizelength",
&psdp.MediaDescription{
MediaName: psdp.MediaName{
Media: "audio",
Protos: []string{"RTP", "AVP"},
Formats: []string{"96"},
},
Attributes: []psdp.Attribute{
{
Key: "rtpmap",
Value: "96 mpeg4-generic/48000/2",
},
{
Key: "fmtp",
Value: "96 profile-level-id=1; config=1190",
},
},
},
"sizelength is missing (96 profile-level-id=1; config=1190)",
},
{ {
"opus invalid 1", "opus invalid 1",
&psdp.MediaDescription{ &psdp.MediaDescription{