[SCM] libav/experimental: Split rtsp_read_header() into two functions, so that the main part (now also known as rtsp_connect()) can be used in the RTSP muxer.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:00:39 UTC 2013


The following commit has been merged in the experimental branch:
commit 4280f9bbcd439e43a37e865018ae501e6a8b9a9e
Author: Martin Storsjö <martin at martin.st>
Date:   Fri Feb 19 23:23:40 2010 +0000

    Split rtsp_read_header() into two functions, so that the main part (now also
    known as rtsp_connect()) can be used in the RTSP muxer.
    
    Patch by Martin Storsjö <$firstname $firstname st>.
    
    Originally committed as revision 21915 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 152c2cc..ae56396 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -1295,8 +1295,7 @@ static int rtsp_setup_input_streams(AVFormatContext *s)
     return 0;
 }
 
-static int rtsp_read_header(AVFormatContext *s,
-                            AVFormatParameters *ap)
+static int rtsp_connect(AVFormatContext *s)
 {
     RTSPState *rt = s->priv_data;
     char host[1024], path[1024], tcpname[1024], cmd[2048], auth[128];
@@ -1424,14 +1423,6 @@ redirect:
 
     rt->state = RTSP_STATE_IDLE;
     rt->seek_timestamp = 0; /* default is to start stream at position zero */
-    if (ap->initial_pause) {
-        /* do not start immediately */
-    } else {
-        if (rtsp_read_play(s) < 0) {
-            err = AVERROR_INVALIDDATA;
-            goto fail;
-        }
-    }
     return 0;
  fail:
     rtsp_close_streams(s);
@@ -1446,6 +1437,29 @@ redirect:
     return err;
 }
 
+static int rtsp_read_header(AVFormatContext *s,
+                            AVFormatParameters *ap)
+{
+    RTSPState *rt = s->priv_data;
+    int ret;
+
+    ret = rtsp_connect(s);
+    if (ret)
+        return ret;
+
+    if (ap->initial_pause) {
+         /* do not start immediately */
+    } else {
+         if (rtsp_read_play(s) < 0) {
+            rtsp_close_streams(s);
+            url_close(rt->rtsp_hd);
+            return AVERROR_INVALIDDATA;
+        }
+    }
+
+    return 0;
+}
+
 static int udp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st,
                            uint8_t *buf, int buf_size)
 {

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list