From 22bb5bd7a3b55c25bfef130ad89e8574dd47af1d Mon Sep 17 00:00:00 2001 From: Gilles Chanteperdrix Date: Sun, 22 Feb 2015 07:59:55 +0100 Subject: [PATCH] avformat/rtsp: punch holes again after pause When a client behind a NAT issues a pause command, and stay paused for a long time, the router may stop the RTP/RTCP port redirection. Resend the hole punching packets after each PLAY command to cause the router to restart the port redirection in that case. Signed-off-by: Gilles Chanteperdrix Signed-off-by: Michael Niedermayer --- libavformat/rtspdec.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c index c8994988d5..f4255f24d2 100644 --- a/libavformat/rtspdec.c +++ b/libavformat/rtspdec.c @@ -542,6 +542,10 @@ static int rtsp_read_play(AVFormatContext *s) AVStream *st = NULL; if (!rtpctx || rtsp_st->stream_index < 0) continue; + if (CONFIG_RTPDEC && + !(rt->server_type == RTSP_SERVER_WMS && i > 1) && s->iformat) + ff_rtp_send_punch_packets(rtsp_st->rtp_handle); + st = s->streams[rtsp_st->stream_index]; rtpctx->range_start_offset = av_rescale_q(reply->range_start, AV_TIME_BASE_Q,