Commit 245f56b040 for ffmpeg
commit 245f56b040687adf094cac533cd6ad5152d1dfc6
Author: Zhao Zhili <quinkblack@foxmail.com>
Date: Thu Oct 8 14:37:18 2026 +0800
avformat/sapdec: disable the udp circular buffer
sap_fetch_packet() polls the raw socket fd to find pending
announcements and reads them itself to detect stream deletion. With
the circular buffer enabled, the rx thread competes for the same
datagrams and usually reads them first, so poll() seldom reports
POLLIN and the check becomes unreliable.
Pass fifo_size=0 as rtpproto.c does.
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
diff --git a/libavformat/sapdec.c b/libavformat/sapdec.c
index 715cd0656a..1be8d3234c 100644
--- a/libavformat/sapdec.c
+++ b/libavformat/sapdec.c
@@ -83,8 +83,8 @@ static int sap_read_header(AVFormatContext *s)
av_strlcpy(host, "224.2.127.254", sizeof(host));
}
- ff_url_join(url, sizeof(url), "udp", NULL, host, port, "?localport=%d",
- port);
+ ff_url_join(url, sizeof(url), "udp", NULL, host, port,
+ "?localport=%d&fifo_size=0", port);
ret = ffurl_open_whitelist(&sap->ann_fd, url, AVIO_FLAG_READ,
&s->interrupt_callback, NULL,
s->protocol_whitelist, s->protocol_blacklist, NULL);