|
|
|
@ -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, |
|
|
|
|