changeset 27103:a3f6dc43b585

Move rtsp_close away by simplification - avoids symbol clash with libnemesi
author lu_zero
date Wed, 25 Jun 2008 09:53:45 +0000
parents 7acfd8c9c3bb
children 83d160a30ca7
files stream/librtsp/rtsp.c stream/librtsp/rtsp.h stream/librtsp/rtsp_session.c
diffstat 3 files changed, 33 insertions(+), 33 deletions(-) [+]
line wrap: on
line diff
--- a/stream/librtsp/rtsp.c	Tue Jun 24 22:36:56 2008 +0000
+++ b/stream/librtsp/rtsp.c	Wed Jun 25 09:53:45 2008 +0000
@@ -575,14 +575,22 @@
 //rtsp_t *rtsp_connect(const char *mrl, const char *user_agent) {
 rtsp_t *rtsp_connect(int fd, char* mrl, char *path, char *host, int port, char *user_agent) {
 
-  rtsp_t *s=malloc(sizeof(rtsp_t));
+  rtsp_t *s;
   int i;
-  
+
+  if (fd < 0) {
+    mp_msg(MSGT_OPEN, MSGL_ERR, "rtsp: failed to connect to '%s'\n", host);
+    return NULL;
+  }
+
+  s = malloc(sizeof(rtsp_t));
+
   for (i=0; i<MAX_FIELDS; i++) {
     s->answers[i]=NULL;
     s->scheduled[i]=NULL;
   }
 
+  s->s = fd;
   s->server=NULL;
   s->server_state=0;
   s->server_caps=0;
@@ -605,13 +613,6 @@
     s->param++;
   //mp_msg(MSGT_OPEN, MSGL_INFO, "path=%s\n", s->path);
   //mp_msg(MSGT_OPEN, MSGL_INFO, "param=%s\n", s->param ? s->param : "NULL");
-  s->s = fd;
-
-  if (s->s < 0) {
-    mp_msg(MSGT_OPEN, MSGL_ERR, "rtsp: failed to connect to '%s'\n", s->host);
-    rtsp_close(s);
-    return NULL;
-  }
 
   s->server_state=RTSP_CONNECTED;
 
@@ -632,29 +633,6 @@
 
 
 /*
- * closes an rtsp connection 
- */
-
-void rtsp_close(rtsp_t *s) {
-
-  if (s->server_state)
-  {
-    if (s->server_state == RTSP_PLAYING)
-      rtsp_request_teardown (s, NULL);
-    closesocket (s->s);
-  }
-
-  if (s->path) free(s->path);
-  if (s->host) free(s->host);
-  if (s->mrl) free(s->mrl);
-  if (s->session) free(s->session);
-  if (s->user_agent) free(s->user_agent);
-  rtsp_free_answers(s);
-  rtsp_unschedule_all(s);
-  free(s);  
-}
-
-/*
  * search in answers for tags. returns a pointer to the content
  * after the first matched tag. returns NULL if no match found.
  */
--- a/stream/librtsp/rtsp.h	Tue Jun 24 22:36:56 2008 +0000
+++ b/stream/librtsp/rtsp.h	Wed Jun 25 09:53:45 2008 +0000
@@ -66,7 +66,6 @@
 void rtsp_free_answers(rtsp_t *this);
 
 int      rtsp_read (rtsp_t *this, char *data, int len);
-void     rtsp_close (rtsp_t *this);
 
 void  rtsp_set_session(rtsp_t *s, const char *id);
 char *rtsp_get_session(rtsp_t *s);
--- a/stream/librtsp/rtsp_session.c	Tue Jun 24 22:36:56 2008 +0000
+++ b/stream/librtsp/rtsp_session.c	Wed Jun 25 09:53:45 2008 +0000
@@ -73,6 +73,29 @@
   struct rtp_rtsp_session_t* rtp_session;
 };
 
+/*
+ * closes an rtsp connection 
+ */
+
+static void rtsp_close(rtsp_t *s) {
+
+  if (s->server_state)
+  {
+    if (s->server_state == RTSP_PLAYING)
+      rtsp_request_teardown (s, NULL);
+    closesocket (s->s);
+  }
+
+  if (s->path) free(s->path);
+  if (s->host) free(s->host);
+  if (s->mrl) free(s->mrl);
+  if (s->session) free(s->session);
+  if (s->user_agent) free(s->user_agent);
+  rtsp_free_answers(s);
+  rtsp_unschedule_all(s);
+  free(s);  
+}
+
 //rtsp_session_t *rtsp_session_start(char *mrl) {
 rtsp_session_t *rtsp_session_start(int fd, char **mrl, char *path, char *host,
   int port, int *redir, uint32_t bandwidth, char *user, char *pass) {