diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2009-03-17 12:34:57 +0000 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2009-03-17 12:34:57 +0000 |
commit | 1a30d5415f6fa2bcc42fd6d81c9e5fbce54e3d9e (patch) | |
tree | 4e4b4c65e97b3e238004a9e0507a0acf341110d9 /libavformat/rtsp.c | |
parent | 6d050dd673b4cda3876698208571fbfb644dde61 (diff) | |
download | ffmpeg-1a30d5415f6fa2bcc42fd6d81c9e5fbce54e3d9e.tar.gz |
Add RTP/ASF header parsing, which is part of the SDP of these streams. See
patch discussion in "[PATCH] RTSP-MS 10/15: ASF header parsing" thread.
Originally committed as revision 18023 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/rtsp.c')
-rw-r--r-- | libavformat/rtsp.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 6806736ed2..a4938bae08 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -36,6 +36,7 @@ #include "rtpdec.h" #include "rdt.h" +#include "rtp_asf.h" //#define DEBUG //#define DEBUG_RTP_TCP @@ -496,7 +497,10 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1, } else if (av_strstart(p, "IsRealDataType:integer;",&p)) { if (atoi(p) == 1) rt->transport = RTSP_TRANSPORT_RDT; - } else if (s->nb_streams > 0) { + } else { + if (rt->server_type == RTSP_SERVER_WMS) + ff_wms_parse_sdp_a_line(s, p); + if (s->nb_streams > 0) { if (rt->server_type == RTSP_SERVER_REAL) ff_real_parse_sdp_a_line(s, s->nb_streams - 1, p); @@ -505,6 +509,7 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1, rtsp_st->dynamic_handler->parse_sdp_a_line) rtsp_st->dynamic_handler->parse_sdp_a_line(s, s->nb_streams - 1, rtsp_st->dynamic_protocol_context, buf); + } } break; } @@ -853,6 +858,10 @@ static void rtsp_close_streams(RTSPState *rt) } } av_free(rt->rtsp_streams); + if (rt->asf_ctx) { + av_close_input_stream (rt->asf_ctx); + rt->asf_ctx = NULL; + } } static int |