diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2009-10-24 15:10:58 +0000 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2009-10-24 15:10:58 +0000 |
commit | 224b44957b5ffd58ce37d39817bb1a503089183b (patch) | |
tree | 08e71101d12116ac94a8df343461239ce885b722 | |
parent | 76e6e9c330048f68d56b2a48bb779ed8b52d52c8 (diff) | |
download | ffmpeg-224b44957b5ffd58ce37d39817bb1a503089183b.tar.gz |
Use sdp c= line if the rtsp Transport line doesn't have a destination
Transport:destination in rtsp is optional, c= line in sdp is compulsory
Patch from Armand Bendanan (name.surnameATfreeDOTfr)
Originally committed as revision 20362 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavformat/rtsp.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index e45966cac3..535adcd823 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -1125,12 +1125,19 @@ make_setup_request (AVFormatContext *s, const char *host, int port, { char url[1024]; struct in_addr in; - - in.s_addr = htonl(reply->transports[0].destination); + int port, ttl; + + if (reply->transports[0].destination) { + in.s_addr = htonl(reply->transports[0].destination); + port = reply->transports[0].port_min; + ttl = reply->transports[0].ttl; + } else { + in = rtsp_st->sdp_ip; + port = rtsp_st->sdp_port; + ttl = rtsp_st->sdp_ttl; + } snprintf(url, sizeof(url), "rtp://%s:%d?ttl=%d", - inet_ntoa(in), - reply->transports[0].port_min, - reply->transports[0].ttl); + inet_ntoa(in), port, ttl); if (url_open(&rtsp_st->rtp_handle, url, URL_RDWR) < 0) { err = AVERROR_INVALIDDATA; goto fail; |