|
|
|
@@ -62,8 +62,6 @@ |
|
|
|
#define DEC AV_OPT_FLAG_DECODING_PARAM |
|
|
|
#define ENC AV_OPT_FLAG_ENCODING_PARAM |
|
|
|
|
|
|
|
#define DEFAULT_USER_AGENT "Lavf/" AV_STRINGIFY(LIBAVFORMAT_VERSION) |
|
|
|
|
|
|
|
#define RTSP_FLAG_OPTS(name, longname) \ |
|
|
|
{ name, longname, OFFSET(rtsp_flags), AV_OPT_TYPE_FLAGS, {.i64 = 0}, INT_MIN, INT_MAX, DEC, "rtsp_flags" }, \ |
|
|
|
{ "filter_src", "Only receive packets from the negotiated peer IP", 0, AV_OPT_TYPE_CONST, {.i64 = RTSP_FLAG_FILTER_SRC}, 0, 0, DEC, "rtsp_flags" }, \ |
|
|
|
@@ -93,7 +91,7 @@ const AVOption ff_rtsp_options[] = { |
|
|
|
{ "timeout", "Maximum timeout (in seconds) to wait for incoming connections. -1 is infinite. Implies flag listen", OFFSET(initial_timeout), AV_OPT_TYPE_INT, {.i64 = -1}, INT_MIN, INT_MAX, DEC }, |
|
|
|
{ "stimeout", "timeout (in micro seconds) of socket i/o operations.", OFFSET(stimeout), AV_OPT_TYPE_INT, {.i64 = 0}, INT_MIN, INT_MAX, DEC }, |
|
|
|
RTSP_REORDERING_OPTS(), |
|
|
|
{ "user-agent", "override User-Agent header", OFFSET(user_agent), AV_OPT_TYPE_STRING, {.str = DEFAULT_USER_AGENT}, 0, 0, DEC }, |
|
|
|
{ "user-agent", "override User-Agent header", OFFSET(user_agent), AV_OPT_TYPE_STRING, {.str = LIBAVFORMAT_IDENT}, 0, 0, DEC }, |
|
|
|
{ NULL }, |
|
|
|
}; |
|
|
|
|
|
|
|
@@ -1138,6 +1136,7 @@ static int rtsp_send_cmd_with_content_async(AVFormatContext *s, |
|
|
|
if (headers) |
|
|
|
av_strlcat(buf, headers, sizeof(buf)); |
|
|
|
av_strlcatf(buf, sizeof(buf), "CSeq: %d\r\n", rt->seq); |
|
|
|
av_strlcatf(buf, sizeof(buf), "User-Agent: %s\r\n", rt->user_agent); |
|
|
|
if (rt->session_id[0] != '\0' && (!headers || |
|
|
|
!strstr(headers, "\nIf-Match:"))) { |
|
|
|
av_strlcatf(buf, sizeof(buf), "Session: %s\r\n", rt->session_id); |
|
|
|
|