diff 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
line wrap: on
line diff
--- a/stream/librtsp/rtsp_session.c	Sun Feb 18 15:06:54 2007 +0000
+++ b/stream/librtsp/rtsp_session.c	Sun Feb 18 15:57:50 2007 +0000
@@ -140,6 +140,12 @@
     }
 	
     rtsp_session->real_session = init_real_rtsp_session ();
+    if(!strncmp(h->streams[0]->mime_type, "application/vnd.rn-rmadriver", h->streams[0]->mime_type_size)) {
+      rtsp_session->real_session->header_len = 0;
+      rtsp_session->real_session->recv_size = 0;
+      rtsp_session->real_session->rdt_rawdata = 1;
+      mp_msg(MSGT_OPEN, MSGL_V, "smil-over-realrtsp playlist, switching to raw rdt mode\n");
+    } else {
     rtsp_session->real_session->header_len =
       rmff_dump_header (h, (char *) rtsp_session->real_session->header, 1024);
 
@@ -150,6 +156,7 @@
 
     rtsp_session->real_session->recv_size =
       rtsp_session->real_session->header_len;
+    }
     rtsp_session->real_session->recv_read = 0;
   } else /* not a Real server : try RTP instead */
   {
@@ -219,7 +226,7 @@
     dest += fill;
     this->real_session->recv_read = 0;
     this->real_session->recv_size =
-      real_get_rdt_chunk (this->s, (char **)&(this->real_session->recv));
+      real_get_rdt_chunk (this->s, (char **)&(this->real_session->recv), this->real_session->rdt_rawdata);
     if (this->real_session->recv_size < 0) {
       this->real_session->rdteof = 1;
       this->real_session->recv_size = 0;