From 25c296f1ddd5fd2be60b79224f50943c7e727afc Mon Sep 17 00:00:00 2001 From: aler9 <46489434+aler9@users.noreply.github.com> Date: Fri, 15 Apr 2022 13:07:15 +0200 Subject: [PATCH] return an error in case an AAC track has no sizelength --- track_aac.go | 4 ++++ track_test.go | 31 ++++++++++++++++++++++++++----- 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/track_aac.go b/track_aac.go index b2967fef..a572ddb5 100644 --- a/track_aac.go +++ b/track_aac.go @@ -141,6 +141,10 @@ func newTrackAACFromMediaDescription( 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 } diff --git a/track_test.go b/track_test.go index 8d2c7743..bec1d4ab 100644 --- a/track_test.go +++ b/track_test.go @@ -388,7 +388,7 @@ func TestTrackNewFromMediaDescriptionErrors(t *testing.T) { err string }{ { - "generic no formats", + "no formats", &psdp.MediaDescription{ MediaName: psdp.MediaName{ Media: "audio", @@ -399,7 +399,7 @@ func TestTrackNewFromMediaDescriptionErrors(t *testing.T) { "unable to get clock rate: no formats provided", }, { - "generic no rtpmap", + "no rtpmap", &psdp.MediaDescription{ MediaName: psdp.MediaName{ Media: "video", @@ -410,7 +410,7 @@ func TestTrackNewFromMediaDescriptionErrors(t *testing.T) { "unable to get clock rate: attribute 'rtpmap' not found", }, { - "generic invalid clockrate 1", + "invalid clockrate 1", &psdp.MediaDescription{ MediaName: psdp.MediaName{ Media: "video", @@ -427,7 +427,7 @@ func TestTrackNewFromMediaDescriptionErrors(t *testing.T) { "unable to get clock rate: invalid rtpmap (96)", }, { - "generic invalid clockrate 2", + "invalid clockrate 2", &psdp.MediaDescription{ MediaName: psdp.MediaName{ Media: "video", @@ -444,7 +444,7 @@ func TestTrackNewFromMediaDescriptionErrors(t *testing.T) { "unable to get clock rate: invalid rtpmap (96 mpeg4-generic)", }, { - "generic invalid clockrate 3", + "invalid clockrate 3", &psdp.MediaDescription{ MediaName: psdp.MediaName{ Media: "video", @@ -582,6 +582,27 @@ func TestTrackNewFromMediaDescriptionErrors(t *testing.T) { }, "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", &psdp.MediaDescription{