rtsp: Move resetting of rtpdec parameters to before sending the PLAY request

Originally committed as revision 26233 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Martin Storsjö 2011-01-05 21:22:15 +00:00
parent ac05f9030e
commit 1726813f13

View File

@ -43,6 +43,19 @@ static int rtsp_read_play(AVFormatContext *s)
rt->nb_byes = 0; rt->nb_byes = 0;
if (!(rt->server_type == RTSP_SERVER_REAL && rt->need_subscription)) { 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) { if (rt->state == RTSP_STATE_PAUSED) {
cmd[0] = 0; cmd[0] = 0;
} else { } else {
@ -63,12 +76,7 @@ static int rtsp_read_play(AVFormatContext *s)
continue; continue;
if (rtsp_st->stream_index >= 0) if (rtsp_st->stream_index >= 0)
st = s->streams[rtsp_st->stream_index]; st = s->streams[rtsp_st->stream_index];
ff_rtp_reset_packet_queue(rtpctx);
if (reply->range_start != AV_NOPTS_VALUE) { 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) if (st)
rtpctx->range_start_offset = rtpctx->range_start_offset =
av_rescale_q(reply->range_start, AV_TIME_BASE_Q, av_rescale_q(reply->range_start, AV_TIME_BASE_Q,