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;