# HG changeset patch # User rbultje # Date 1236098936 0 # Node ID eaf90db8cc42e12d78a28eb4237d2b22bd999b1d # Parent d4f4eb9ce54f78cbfddc9c689c001c4503efb92c Recognize the "application" data type, which is required for WMS/UDP sessions. This type is used in RTP/ASF (served by WMS servers), and is required to make UDP sessions work, but breaks TCP sessions. Therefore, we disable setup for application streams in TCP/WMS streams. See discussion in "[PATCH] RTSP-MS 8/15: fix RTSP-MS UDP" thread. diff -r d4f4eb9ce54f -r eaf90db8cc42 rtsp.c --- a/rtsp.c Tue Mar 03 16:19:37 2009 +0000 +++ b/rtsp.c Tue Mar 03 16:48:56 2009 +0000 @@ -392,6 +392,8 @@ codec_type = CODEC_TYPE_AUDIO; } else if (!strcmp(st_type, "video")) { codec_type = CODEC_TYPE_VIDEO; + } else if (!strcmp(st_type, "application")) { + codec_type = CODEC_TYPE_DATA; } else { s1->skip_media = 1; return; @@ -942,6 +944,12 @@ /* RTP/TCP */ else if (lower_transport == RTSP_LOWER_TRANSPORT_TCP) { + /** For WMS streams, the application streams are only used for + * UDP. When trying to set it up for TCP streams, the server + * will return an error. Therefore, we skip those streams. */ + if (rt->server_type == RTSP_SERVER_WMS && + s->streams[rtsp_st->stream_index]->codec->codec_type == CODEC_TYPE_DATA) + continue; snprintf(transport, sizeof(transport) - 1, "%s/TCP;", trans_pref); if (rt->server_type == RTSP_SERVER_WMS)