diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2008-09-07 01:25:47 +0000 |
---|---|---|
committer | Ronald S. Bultje <rsbultje@gmail.com> | 2008-09-07 01:25:47 +0000 |
commit | 4fce284c085aa9d88aa7881015500964f70dbf55 (patch) | |
tree | e767655d6aa0e92ef9cdf129090d8a642d78ac95 /libavformat/rtsp.c | |
parent | 99b2ac0797ea9ef5ef79ef1e4c42240551fd28e1 (diff) | |
download | ffmpeg-4fce284c085aa9d88aa7881015500964f70dbf55.tar.gz |
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.c | 10 |
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) { |