diff --git a/libavformat/rtpproto.c b/libavformat/rtpproto.c index 451d8114e5..2062083aee 100644 --- a/libavformat/rtpproto.c +++ b/libavformat/rtpproto.c @@ -323,6 +323,7 @@ static int rtp_open(URLContext *h, const char *uri, int flags) char path[1024]; const char *p; int i, max_retry_count = 3; + int rtcpflags; av_url_split(NULL, 0, NULL, 0, hostname, sizeof(hostname), &rtp_port, path, sizeof(path), uri); @@ -388,12 +389,13 @@ static int rtp_open(URLContext *h, const char *uri, int flags) s->local_rtpport = -1; continue; } + rtcpflags = flags | AVIO_FLAG_WRITE; if (s->local_rtcpport < 0) { s->local_rtcpport = s->local_rtpport + 1; build_udp_url(s, buf, sizeof(buf), hostname, s->rtcp_port, s->local_rtcpport, sources, block); - if (ffurl_open_whitelist(&s->rtcp_hd, buf, flags, + if (ffurl_open_whitelist(&s->rtcp_hd, buf, rtcpflags, &h->interrupt_callback, NULL, h->protocol_whitelist, h->protocol_blacklist) < 0) { s->local_rtpport = s->local_rtcpport = -1; @@ -404,7 +406,7 @@ static int rtp_open(URLContext *h, const char *uri, int flags) build_udp_url(s, buf, sizeof(buf), hostname, s->rtcp_port, s->local_rtcpport, sources, block); - if (ffurl_open_whitelist(&s->rtcp_hd, buf, flags, &h->interrupt_callback, + if (ffurl_open_whitelist(&s->rtcp_hd, buf, rtcpflags, &h->interrupt_callback, NULL, h->protocol_whitelist, h->protocol_blacklist) < 0) goto fail; break; diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 64f8c91950..485e35626d 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -2316,7 +2316,7 @@ static int sdp_read_header(AVFormatContext *s) append_source_addrs(url, sizeof(url), "block", rtsp_st->nb_exclude_source_addrs, rtsp_st->exclude_source_addrs); - err = ffurl_open_whitelist(&rtsp_st->rtp_handle, url, AVIO_FLAG_READ_WRITE, + err = ffurl_open_whitelist(&rtsp_st->rtp_handle, url, AVIO_FLAG_READ, &s->interrupt_callback, &opts, s->protocol_whitelist, s->protocol_blacklist); av_dict_free(&opts);