Commit 76a85601 authored by rbultje's avatar rbultje

Recognize the "application" data type, which is used at least in ASF/RTP

streams. However, at the same time, setup of this stream might be required
for UDP-sessions to work correctly, at the same time it will cause TCP
sessions to barf. Therefore, add a special case to the TCP code to skip
setup of these application streams when we are dealing with WMS servers.

See discussion in "[PATCH] RTSP-MS 8/15: fix RTSP-MS UDP" thread.



git-svn-id: file:///var/local/repositories/ffmpeg/trunk@17776 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent cbc6b905
......@@ -392,6 +392,8 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1,
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 @@ make_setup_request (AVFormatContext *s, const char *host, int port,
/* 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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment