PR #20256 opened by Jack Lau (JackLau)
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20256
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20256.patch

See RFC 5245 Section 4.3
If an agent is a lite implementation, it MUST include an "a=ice-lite"
session-level attribute in its SDP.  If an agent is a full
implementation, it MUST NOT include this attribute.

Signed-off-by: Jack Lau <jacklau1...@qq.com>


>From 0f00cd8787537efeb22ee7dd0c19271ac2cb5eda Mon Sep 17 00:00:00 2001
From: Jack Lau <jacklau1...@qq.com>
Date: Sat, 16 Aug 2025 20:20:23 +0800
Subject: [PATCH] avformat/whip: check the peer whether is ice lite

See RFC 5245 Section 4.3
If an agent is a lite implementation, it MUST include an "a=ice-lite"
session-level attribute in its SDP.  If an agent is a full
implementation, it MUST NOT include this attribute.

Signed-off-by: Jack Lau <jacklau1...@qq.com>
---
 libavformat/whip.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libavformat/whip.c b/libavformat/whip.c
index e2fa774c6f..19ab701b05 100644
--- a/libavformat/whip.c
+++ b/libavformat/whip.c
@@ -228,6 +228,7 @@ typedef struct WHIPContext {
      */
     char *sdp_offer;
 
+    int is_peer_ice_lite;
     /* The ICE username and pwd from remote server. */
     char *ice_ufrag_remote;
     char *ice_pwd_remote;
@@ -829,6 +830,8 @@ static int parse_answer(AVFormatContext *s)
 
     for (i = 0; !avio_feof(pb); i++) {
         ff_get_chomp_line(pb, line, sizeof(line));
+        if (av_strstart(line, "a=ice-lite", &ptr))
+            whip->is_peer_ice_lite = 1;
         if (av_strstart(line, "a=ice-ufrag:", &ptr) && 
!whip->ice_ufrag_remote) {
             whip->ice_ufrag_remote = av_strdup(ptr);
             if (!whip->ice_ufrag_remote) {
-- 
2.49.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to