summaryrefslogtreecommitdiff
path: root/libavformat/rtsp.c
diff options
context:
space:
mode:
authorJosh Allmann <joshua.allmann@gmail.com>2010-06-19 21:36:13 +0000
committerMartin Storsjö <martin@martin.st>2010-06-19 21:36:13 +0000
commit00e4a1f4e29f645b1a5bcf334953100e406bbcc7 (patch)
tree250a3c2017da27593c080b38d2a99760f9cc47d9 /libavformat/rtsp.c
parenta20639017bfca0490bb1799575714f22bf470b4f (diff)
RTSP: Don't store the connection handles in local variables
This removes some useless copying of handles, and simplifies error handling. Patch by Josh Allmann, joshua dot allmann at gmail Originally committed as revision 23648 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/rtsp.c')
-rw-r--r--libavformat/rtsp.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 6507841cdb..d77485d9b1 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -1490,7 +1490,6 @@ int ff_rtsp_connect(AVFormatContext *s)
RTSPState *rt = s->priv_data;
char host[1024], path[1024], tcpname[1024], cmd[2048], auth[128];
char *option_list, *option, *filename;
- URLContext *rtsp_hd, *rtsp_hd_out;
int port, err, tcp_fd;
RTSPMessageHeader reply1 = {}, *reply = &reply1;
int lower_transport_mask = 0;
@@ -1578,7 +1577,7 @@ redirect:
av_get_random_seed(), av_get_random_seed());
/* GET requests */
- if (url_open(&rtsp_hd, httpname, URL_RDONLY) < 0) {
+ if (url_open(&rt->rtsp_hd, httpname, URL_RDONLY) < 0) {
err = AVERROR(EIO);
goto fail;
}
@@ -1590,18 +1589,16 @@ redirect:
"Pragma: no-cache\r\n"
"Cache-Control: no-cache\r\n",
sessioncookie);
- ff_http_set_headers(rtsp_hd, headers);
+ ff_http_set_headers(rt->rtsp_hd, headers);
/* complete the connection */
- if (url_read(rtsp_hd, NULL, 0)) {
- url_close(rtsp_hd);
+ if (url_read(rt->rtsp_hd, NULL, 0)) {
err = AVERROR(EIO);
goto fail;
}
/* POST requests */
- if (url_open(&rtsp_hd_out, httpname, URL_WRONLY) < 0 ) {
- url_close(rtsp_hd);
+ if (url_open(&rt->rtsp_hd_out, httpname, URL_WRONLY) < 0 ) {
err = AVERROR(EIO);
goto fail;
}
@@ -1615,23 +1612,21 @@ redirect:
"Content-Length: 32767\r\n"
"Expires: Sun, 9 Jan 1972 00:00:00 GMT\r\n",
sessioncookie);
- ff_http_set_headers(rtsp_hd_out, headers);
- ff_http_set_chunked_transfer_encoding(rtsp_hd_out, 0);
+ ff_http_set_headers(rt->rtsp_hd_out, headers);
+ ff_http_set_chunked_transfer_encoding(rt->rtsp_hd_out, 0);
} else {
/* open the tcp connection */
ff_url_join(tcpname, sizeof(tcpname), "tcp", NULL, host, port, NULL);
- if (url_open(&rtsp_hd, tcpname, URL_RDWR) < 0) {
+ if (url_open(&rt->rtsp_hd, tcpname, URL_RDWR) < 0) {
err = AVERROR(EIO);
goto fail;
}
- rtsp_hd_out = rtsp_hd;
+ rt->rtsp_hd_out = rt->rtsp_hd;
}
- rt->rtsp_hd = rtsp_hd;
- rt->rtsp_hd_out = rtsp_hd_out;
rt->seq = 0;
- tcp_fd = url_get_file_handle(rtsp_hd);
+ tcp_fd = url_get_file_handle(rt->rtsp_hd);
if (!getpeername(tcp_fd, (struct sockaddr*) &peer, &peer_len)) {
getnameinfo((struct sockaddr*) &peer, peer_len, host, sizeof(host),
NULL, 0, NI_NUMERICHOST);