From 1726813f13b459af2265742bbba6830409de5e2d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Martin=20Storsj=C3=B6?= Date: Wed, 5 Jan 2011 21:22:15 +0000 Subject: [PATCH] rtsp: Move resetting of rtpdec parameters to before sending the PLAY request Originally committed as revision 26233 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/rtspdec.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c index 13fa969..cdcef38 100644 --- a/libavformat/rtspdec.c +++ b/libavformat/rtspdec.c @@ -43,6 +43,19 @@ static int rtsp_read_play(AVFormatContext *s) rt->nb_byes = 0; if (!(rt->server_type == RTSP_SERVER_REAL && rt->need_subscription)) { + if (rt->transport == RTSP_TRANSPORT_RTP) { + for (i = 0; i < rt->nb_rtsp_streams; i++) { + RTSPStream *rtsp_st = rt->rtsp_streams[i]; + RTPDemuxContext *rtpctx = rtsp_st->transport_priv; + if (!rtpctx) + continue; + ff_rtp_reset_packet_queue(rtpctx); + rtpctx->last_rtcp_ntp_time = AV_NOPTS_VALUE; + rtpctx->first_rtcp_ntp_time = AV_NOPTS_VALUE; + rtpctx->base_timestamp = 0; + rtpctx->rtcp_ts_offset = 0; + } + } if (rt->state == RTSP_STATE_PAUSED) { cmd[0] = 0; } else { @@ -63,12 +76,7 @@ static int rtsp_read_play(AVFormatContext *s) continue; if (rtsp_st->stream_index >= 0) st = s->streams[rtsp_st->stream_index]; - ff_rtp_reset_packet_queue(rtpctx); if (reply->range_start != AV_NOPTS_VALUE) { - rtpctx->last_rtcp_ntp_time = AV_NOPTS_VALUE; - rtpctx->first_rtcp_ntp_time = AV_NOPTS_VALUE; - rtpctx->base_timestamp = 0; - rtpctx->rtcp_ts_offset = 0; if (st) rtpctx->range_start_offset = av_rescale_q(reply->range_start, AV_TIME_BASE_Q, -- 2.7.4