#include "internal.h"
#include "network.h"
#include "os_support.h"
+#include "rtpproto.h"
#include "rtsp.h"
#include "rdt.h"
#include "url.h"
do {
ret = ffurl_read_complete(rt->rtsp_hd, rbuf + idx, 1);
- if (ret < 0)
- return ret;
+ if (ret <= 0)
+ return ret ? ret : AVERROR_EOF;
if (rbuf[idx] == '\r') {
/* Ignore */
} else if (rbuf[idx] == '\n') {
if (*methodcode == ANNOUNCE) {
av_log(s, AV_LOG_INFO,
"Updating control URI to %s\n", uri);
- strcpy(rt->control_uri, uri);
+ av_strlcpy(rt->control_uri, uri, sizeof(rt->control_uri));
}
}
/* ff_url_join. No authorization by now (NULL) */
ff_url_join(rt->control_uri, sizeof(rt->control_uri), "rtsp", NULL, host,
port, "%s", path);
+
+ if (port < 0)
+ port = RTSP_DEFAULT_PORT;
+
/* Create TCP connection */
ff_url_join(tcpname, sizeof(tcpname), "tcp", NULL, host, port,
"?listen&listen_timeout=%d", rt->initial_timeout * 1000);
AVInputFormat ff_rtsp_demuxer = {
.name = "rtsp",
- .long_name = NULL_IF_CONFIG_SMALL("RTSP input format"),
+ .long_name = NULL_IF_CONFIG_SMALL("RTSP input"),
.priv_data_size = sizeof(RTSPState),
.read_probe = rtsp_probe,
.read_header = rtsp_read_header,