[SCM] libav/experimental: rtsp: Parse and use the Content-Base reply header, if present

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:19:03 UTC 2013


The following commit has been merged in the experimental branch:
commit dd22cfb1015dea8f9db29a2334662bd35c3d3f79
Author: Martin Storsjö <martin at martin.st>
Date:   Mon Nov 15 15:08:53 2010 +0000

    rtsp: Parse and use the Content-Base reply header, if present
    
    This fixes playing RTSP urls with query parameters.
    
    Originally committed as revision 25755 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 1f55016..cbb19f4 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -706,6 +706,9 @@ void ff_rtsp_parse_line(RTSPMessageHeader *reply, const char *buf,
     } else if (av_stristart(p, "Authentication-Info:", &p) && auth_state) {
         p += strspn(p, SPACE_CHARS);
         ff_http_auth_handle_header(auth_state, "Authentication-Info", p);
+    } else if (av_stristart(p, "Content-Base:", &p)) {
+        p += strspn(p, SPACE_CHARS);
+        av_strlcpy(reply->content_base, p , sizeof(reply->content_base));
     }
 }
 
diff --git a/libavformat/rtsp.h b/libavformat/rtsp.h
index 8997532..ba05260 100644
--- a/libavformat/rtsp.h
+++ b/libavformat/rtsp.h
@@ -165,6 +165,10 @@ typedef struct RTSPMessageHeader {
      * returned
      */
     char reason[256];
+
+    /** The "Content-Base:" field.
+     */
+    char content_base[4096];
 } RTSPMessageHeader;
 
 /**
diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c
index fd74b08..213f709 100644
--- a/libavformat/rtspdec.c
+++ b/libavformat/rtspdec.c
@@ -105,6 +105,9 @@ int ff_rtsp_setup_input_streams(AVFormatContext *s, RTSPMessageHeader *reply)
         av_freep(&content);
         return AVERROR_INVALIDDATA;
     }
+    if (reply->content_base[0])
+        av_strlcpy(rt->control_uri, reply->content_base,
+                   sizeof(rt->control_uri));
 
     av_log(s, AV_LOG_VERBOSE, "SDP:\n%s\n", content);
     /* now we got the SDP description, we parse it */

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list