]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/rtsp.c
This patch refactors RDT packet header parsing so that it can be used in
[ffmpeg] / libavformat / rtsp.c
index 84bfa370b77314560e814eb12af6e76dce991f0c..254931cf3d55628746e0b0cb36bd08e459de5d8c 100644 (file)
@@ -1265,6 +1265,9 @@ static int tcp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st,
     ret = url_readbuf(rt->rtsp_hd, buf, len);
     if (ret != len)
         return -1;
+    if (rt->transport == RTSP_TRANSPORT_RDT &&
+        ff_rdt_parse_header(buf, len, &id, NULL, NULL, NULL) < 0)
+        return -1;
 
     /* find the matching stream */
     for(i = 0; i < rt->nb_rtsp_streams; i++) {
@@ -1341,9 +1344,9 @@ static int rtsp_read_packet(AVFormatContext *s,
             if (i != 0) av_strlcat(cmd, ",", sizeof(cmd));
             ff_rdt_subscribe_rule(cmd, sizeof(cmd), i, 0);
             if (rt->transport == RTSP_TRANSPORT_RDT)
-            ff_rdt_subscribe_rule2(
-                rt->rtsp_streams[i]->rtp_ctx,
-                cmd, sizeof(cmd), i, 0);
+                ff_rdt_subscribe_rule2(
+                    rt->rtsp_streams[i]->rtp_ctx,
+                    cmd, sizeof(cmd), i, 0);
         }
         av_strlcat(cmd, "\r\n", sizeof(cmd));
         rtsp_send_cmd(s, cmd, reply, NULL);