From 4b0065a8abe8afbd0cf8b1b26cc2040db1c20a5f Mon Sep 17 00:00:00 2001 From: Boris Frolikov Date: Mon, 2 Feb 2026 15:46:30 +0300 Subject: [PATCH 1/2] Add FEC to SDP parsing --- unmarshal.go | 1 + unmarshal_test.go | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/unmarshal.go b/unmarshal.go index 939b6ce..b423437 100644 --- a/unmarshal.go +++ b/unmarshal.go @@ -895,6 +895,7 @@ func unmarshalMediaDescription(lex *lexer) (stateFn, error) { //nolint:cyclop "UDT", "IX", "MRCPv2", + "FEC", ) { return nil, fmt.Errorf("%w `%v`", errSDPInvalidNumericValue, field) } diff --git a/unmarshal_test.go b/unmarshal_test.go index dd2e313..e9db0ab 100644 --- a/unmarshal_test.go +++ b/unmarshal_test.go @@ -174,6 +174,12 @@ const ( MediaTCPTLSMRCPv2 = TimingSDP + "m=application 1544 TCP/TLS/MRCPv2 1\r\n" + MediaFECSDP = TimingSDP + + "m=application 50178 UDP/FEC *\r\n" + + "a=mid:R1\r\n" + + "a=fec-repair-flow:encoding-id=8; fssi=E:1500,S:0,m:8\r\n" + + "a=repair-window:200ms\r\n" + CanonicalUnmarshalSDP = "v=0\r\n" + "o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5\r\n" + "s=SDP Seminar\r\n" + @@ -333,6 +339,10 @@ func TestRoundTrip(t *testing.T) { Name: "MediaTCPTLSMRCPv2", SDP: MediaTCPTLSMRCPv2, }, + { + Name: "MediaFEC", + SDP: MediaFECSDP, + }, } { test := test t.Run(test.Name, func(t *testing.T) { From 1a3a691da380bee5f3b4afff2c4a13a850df311e Mon Sep 17 00:00:00 2001 From: Boris Frolikov Date: Mon, 2 Feb 2026 15:59:59 +0300 Subject: [PATCH 2/2] Remove irrelevant data --- unmarshal_test.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/unmarshal_test.go b/unmarshal_test.go index e9db0ab..6310bfc 100644 --- a/unmarshal_test.go +++ b/unmarshal_test.go @@ -176,9 +176,8 @@ const ( MediaFECSDP = TimingSDP + "m=application 50178 UDP/FEC *\r\n" + - "a=mid:R1\r\n" + - "a=fec-repair-flow:encoding-id=8; fssi=E:1500,S:0,m:8\r\n" + - "a=repair-window:200ms\r\n" + "a=fec-repair-flow:encoding-id=8; fssi=E:1234,S:0,m:7\r\n" + + "a=repair-window:500ms\r\n" CanonicalUnmarshalSDP = "v=0\r\n" + "o=jdoe 2890844526 2890842807 IN IP4 10.47.16.5\r\n" +