Commit 51369f28 authored by Martin Storsjö's avatar Martin Storsjö

rtsp: Expose the flag options via private AVOptions for sdp and rtp, too

This allows setting the filter_src option for these demuxers, too,
which wasn't possible at all before (where the option only was set
via URL parameters for RTSP).
Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
parent 3a6765fb
...@@ -77,6 +77,16 @@ const AVOption ff_rtsp_options[] = { ...@@ -77,6 +77,16 @@ const AVOption ff_rtsp_options[] = {
{ NULL }, { NULL },
}; };
static const AVOption sdp_options[] = {
RTSP_FLAG_OPTS("sdp_flags", "SDP flags"),
{ NULL },
};
static const AVOption rtp_options[] = {
RTSP_FLAG_OPTS("rtp_flags", "RTP flags"),
{ NULL },
};
static void get_word_until_chars(char *buf, int buf_size, static void get_word_until_chars(char *buf, int buf_size,
const char *sep, const char **pp) const char *sep, const char **pp)
{ {
...@@ -1835,8 +1845,9 @@ static int sdp_read_header(AVFormatContext *s, AVFormatParameters *ap) ...@@ -1835,8 +1845,9 @@ static int sdp_read_header(AVFormatContext *s, AVFormatParameters *ap)
namebuf, sizeof(namebuf), NULL, 0, NI_NUMERICHOST); namebuf, sizeof(namebuf), NULL, 0, NI_NUMERICHOST);
ff_url_join(url, sizeof(url), "rtp", NULL, ff_url_join(url, sizeof(url), "rtp", NULL,
namebuf, rtsp_st->sdp_port, namebuf, rtsp_st->sdp_port,
"?localport=%d&ttl=%d", rtsp_st->sdp_port, "?localport=%d&ttl=%d&connect=%d", rtsp_st->sdp_port,
rtsp_st->sdp_ttl); rtsp_st->sdp_ttl,
rt->rtsp_flags & RTSP_FLAG_FILTER_SRC ? 1 : 0);
if (ffurl_open(&rtsp_st->rtp_handle, url, AVIO_FLAG_READ_WRITE) < 0) { if (ffurl_open(&rtsp_st->rtp_handle, url, AVIO_FLAG_READ_WRITE) < 0) {
err = AVERROR_INVALIDDATA; err = AVERROR_INVALIDDATA;
goto fail; goto fail;
...@@ -1858,6 +1869,13 @@ static int sdp_read_close(AVFormatContext *s) ...@@ -1858,6 +1869,13 @@ static int sdp_read_close(AVFormatContext *s)
return 0; return 0;
} }
static const AVClass sdp_demuxer_class = {
.class_name = "SDP demuxer",
.item_name = av_default_item_name,
.option = sdp_options,
.version = LIBAVUTIL_VERSION_INT,
};
AVInputFormat ff_sdp_demuxer = { AVInputFormat ff_sdp_demuxer = {
.name = "sdp", .name = "sdp",
.long_name = NULL_IF_CONFIG_SMALL("SDP"), .long_name = NULL_IF_CONFIG_SMALL("SDP"),
...@@ -1866,6 +1884,7 @@ AVInputFormat ff_sdp_demuxer = { ...@@ -1866,6 +1884,7 @@ AVInputFormat ff_sdp_demuxer = {
.read_header = sdp_read_header, .read_header = sdp_read_header,
.read_packet = ff_rtsp_fetch_packet, .read_packet = ff_rtsp_fetch_packet,
.read_close = sdp_read_close, .read_close = sdp_read_close,
.priv_class = &sdp_demuxer_class
}; };
#endif /* CONFIG_SDP_DEMUXER */ #endif /* CONFIG_SDP_DEMUXER */
...@@ -1962,6 +1981,13 @@ fail: ...@@ -1962,6 +1981,13 @@ fail:
return ret; return ret;
} }
static const AVClass rtp_demuxer_class = {
.class_name = "RTP demuxer",
.item_name = av_default_item_name,
.option = rtp_options,
.version = LIBAVUTIL_VERSION_INT,
};
AVInputFormat ff_rtp_demuxer = { AVInputFormat ff_rtp_demuxer = {
.name = "rtp", .name = "rtp",
.long_name = NULL_IF_CONFIG_SMALL("RTP input format"), .long_name = NULL_IF_CONFIG_SMALL("RTP input format"),
...@@ -1971,6 +1997,7 @@ AVInputFormat ff_rtp_demuxer = { ...@@ -1971,6 +1997,7 @@ AVInputFormat ff_rtp_demuxer = {
.read_packet = ff_rtsp_fetch_packet, .read_packet = ff_rtsp_fetch_packet,
.read_close = sdp_read_close, .read_close = sdp_read_close,
.flags = AVFMT_NOFILE, .flags = AVFMT_NOFILE,
.priv_class = &rtp_demuxer_class
}; };
#endif /* CONFIG_RTP_DEMUXER */ #endif /* CONFIG_RTP_DEMUXER */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment