Call check_back_and_send_rr() function only in case of RTP as a transport.
authorRonald S. Bultje <rsbultje@gmail.com>
Sat, 15 Nov 2008 14:44:48 +0000 (14:44 +0000)
committerRonald S. Bultje <rsbultje@gmail.com>
Sat, 15 Nov 2008 14:44:48 +0000 (14:44 +0000)
Don't call it for RDT, since it is unneeded and it doesn't provide a
RTPDemuxContext, leading to some memory errors. See "[PATCH] fix small
memory error in rtsp.c" thread on ML.

Originally committed as revision 15828 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/rtsp.c

index f7596d2a34740f59c3e8a4932eb163823b88eceb..543032e35cdd172a1925817b8d648a172265f51c 100644 (file)
@@ -1399,7 +1399,7 @@ static int rtsp_read_packet(AVFormatContext *s,
     case RTSP_LOWER_TRANSPORT_UDP:
     case RTSP_LOWER_TRANSPORT_UDP_MULTICAST:
         len = udp_read_packet(s, &rtsp_st, buf, sizeof(buf));
     case RTSP_LOWER_TRANSPORT_UDP:
     case RTSP_LOWER_TRANSPORT_UDP_MULTICAST:
         len = udp_read_packet(s, &rtsp_st, buf, sizeof(buf));
-        if (len >=0 && rtsp_st->tx_ctx)
+        if (len >=0 && rtsp_st->tx_ctx && rt->transport == RTSP_TRANSPORT_RTP)
             rtp_check_and_send_back_rr(rtsp_st->tx_ctx, len);
         break;
     }
             rtp_check_and_send_back_rr(rtsp_st->tx_ctx, len);
         break;
     }