summaryrefslogtreecommitdiff
path: root/libavformat/rtsp.c
diff options
context:
space:
mode:
authorRonald S. Bultje <rsbultje@gmail.com>2008-09-07 01:25:47 +0000
committerRonald S. Bultje <rsbultje@gmail.com>2008-09-07 01:25:47 +0000
commit4fce284c085aa9d88aa7881015500964f70dbf55 (patch)
treee767655d6aa0e92ef9cdf129090d8a642d78ac95 /libavformat/rtsp.c
parent99b2ac0797ea9ef5ef79ef1e4c42240551fd28e1 (diff)
Implement RDT-specific data parsing routines. After these changes, simple
playback of RTSP/RDT streams should work. See discussion in "Realmedia patch" thread on ML. Originally committed as revision 15237 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/rtsp.c')
-rw-r--r--libavformat/rtsp.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index fddd60843b..950ec46474 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -1326,7 +1326,10 @@ static int rtsp_read_packet(AVFormatContext *s,
/* get next frames from the same RTP packet */
if (rt->cur_rtp) {
- ret = rtp_parse_packet(rt->cur_rtp, pkt, NULL, 0);
+ if (rt->server_type == RTSP_SERVER_RDT)
+ ret = ff_rdt_parse_packet(rt->cur_rtp, pkt, NULL, 0);
+ else
+ ret = rtp_parse_packet(rt->cur_rtp, pkt, NULL, 0);
if (ret == 0) {
rt->cur_rtp = NULL;
return 0;
@@ -1353,7 +1356,10 @@ static int rtsp_read_packet(AVFormatContext *s,
}
if (len < 0)
return len;
- ret = rtp_parse_packet(rtsp_st->rtp_ctx, pkt, buf, len);
+ if (rt->server_type == RTSP_SERVER_RDT)
+ ret = ff_rdt_parse_packet(rtsp_st->rtp_ctx, pkt, buf, len);
+ else
+ ret = rtp_parse_packet(rtsp_st->rtp_ctx, pkt, buf, len);
if (ret < 0)
goto redo;
if (ret == 1) {