Mercurial > mplayer.hg
comparison stream/librtsp/rtsp_session.c @ 22242:4cabf7499fef
Add support for smil playlist served over realrtsp
(audio and video playback only, not full smil support)
author | rtogni |
---|---|
date | Sun, 18 Feb 2007 15:57:50 +0000 |
parents | f0040ff1ba40 |
children | 7526ff6035c1 |
comparison
equal
deleted
inserted
replaced
22241:be27c7642939 | 22242:4cabf7499fef |
---|---|
138 return NULL; | 138 return NULL; |
139 } | 139 } |
140 } | 140 } |
141 | 141 |
142 rtsp_session->real_session = init_real_rtsp_session (); | 142 rtsp_session->real_session = init_real_rtsp_session (); |
143 if(!strncmp(h->streams[0]->mime_type, "application/vnd.rn-rmadriver", h->streams[0]->mime_type_size)) { | |
144 rtsp_session->real_session->header_len = 0; | |
145 rtsp_session->real_session->recv_size = 0; | |
146 rtsp_session->real_session->rdt_rawdata = 1; | |
147 mp_msg(MSGT_OPEN, MSGL_V, "smil-over-realrtsp playlist, switching to raw rdt mode\n"); | |
148 } else { | |
143 rtsp_session->real_session->header_len = | 149 rtsp_session->real_session->header_len = |
144 rmff_dump_header (h, (char *) rtsp_session->real_session->header, 1024); | 150 rmff_dump_header (h, (char *) rtsp_session->real_session->header, 1024); |
145 | 151 |
146 rtsp_session->real_session->recv = | 152 rtsp_session->real_session->recv = |
147 xbuffer_copyin (rtsp_session->real_session->recv, 0, | 153 xbuffer_copyin (rtsp_session->real_session->recv, 0, |
148 rtsp_session->real_session->header, | 154 rtsp_session->real_session->header, |
149 rtsp_session->real_session->header_len); | 155 rtsp_session->real_session->header_len); |
150 | 156 |
151 rtsp_session->real_session->recv_size = | 157 rtsp_session->real_session->recv_size = |
152 rtsp_session->real_session->header_len; | 158 rtsp_session->real_session->header_len; |
159 } | |
153 rtsp_session->real_session->recv_read = 0; | 160 rtsp_session->real_session->recv_read = 0; |
154 } else /* not a Real server : try RTP instead */ | 161 } else /* not a Real server : try RTP instead */ |
155 { | 162 { |
156 char *public = NULL; | 163 char *public = NULL; |
157 | 164 |
217 memcpy(dest, source, fill); | 224 memcpy(dest, source, fill); |
218 to_copy -= fill; | 225 to_copy -= fill; |
219 dest += fill; | 226 dest += fill; |
220 this->real_session->recv_read = 0; | 227 this->real_session->recv_read = 0; |
221 this->real_session->recv_size = | 228 this->real_session->recv_size = |
222 real_get_rdt_chunk (this->s, (char **)&(this->real_session->recv)); | 229 real_get_rdt_chunk (this->s, (char **)&(this->real_session->recv), this->real_session->rdt_rawdata); |
223 if (this->real_session->recv_size < 0) { | 230 if (this->real_session->recv_size < 0) { |
224 this->real_session->rdteof = 1; | 231 this->real_session->rdteof = 1; |
225 this->real_session->recv_size = 0; | 232 this->real_session->recv_size = 0; |
226 } | 233 } |
227 source = (char *) this->real_session->recv; | 234 source = (char *) this->real_session->recv; |