[FFmpeg-cvslog] r16472 - in trunk/libavformat: rtsp.c rtsp.h
rbultje
subversion
Wed Jan 7 15:55:48 CET 2009
Author: rbultje
Date: Wed Jan 7 15:55:47 2009
New Revision: 16472
Log:
Use the "server" RTSP field to detect whether the server that we're talking
to is a Microsoft Windows Media Server (the field will be "WMServer/version").
See "[PATCH] RTSP-MS 3/15: Add Windows Media Server type" thread on
mailinglist.
Modified:
trunk/libavformat/rtsp.c
trunk/libavformat/rtsp.h
Modified: trunk/libavformat/rtsp.c
==============================================================================
--- trunk/libavformat/rtsp.c Wed Jan 7 15:53:04 2009 (r16471)
+++ trunk/libavformat/rtsp.c Wed Jan 7 15:55:47 2009 (r16472)
@@ -688,6 +688,9 @@ void rtsp_parse_line(RTSPHeader *reply,
} else if (av_stristart(p, "RealChallenge1:", &p)) {
skip_spaces(&p);
av_strlcpy(reply->real_challenge, p, sizeof(reply->real_challenge));
+ } else if (av_stristart(p, "Server:", &p)) {
+ skip_spaces(&p);
+ av_strlcpy(reply->server, p, sizeof(reply->server));
}
}
@@ -1123,6 +1126,8 @@ static int rtsp_read_header(AVFormatCont
if (rt->server_type != RTSP_SERVER_REAL && reply->real_challenge[0]) {
rt->server_type = RTSP_SERVER_REAL;
continue;
+ } else if (!strncasecmp(reply->server, "WMServer/", 9)) {
+ rt->server_type = RTSP_SERVER_WMS;
} else if (rt->server_type == RTSP_SERVER_REAL) {
strcpy(real_challenge, reply->real_challenge);
}
Modified: trunk/libavformat/rtsp.h
==============================================================================
--- trunk/libavformat/rtsp.h Wed Jan 7 15:53:04 2009 (r16471)
+++ trunk/libavformat/rtsp.h Wed Jan 7 15:55:47 2009 (r16472)
@@ -66,6 +66,7 @@ typedef struct RTSPHeader {
int seq; /**< sequence number */
char session_id[512];
char real_challenge[64]; /**< the RealChallenge1 field from the server */
+ char server[64];
} RTSPHeader;
enum RTSPClientState {
@@ -77,6 +78,7 @@ enum RTSPClientState {
enum RTSPServerType {
RTSP_SERVER_RTP, /*< Standard-compliant RTP-server */
RTSP_SERVER_REAL, /*< Realmedia-style server */
+ RTSP_SERVER_WMS, /*< Windows Media server */
RTSP_SERVER_LAST
};
More information about the ffmpeg-cvslog
mailing list