[FFmpeg-devel] [PATCH] avformat/rtsp: punch holes again after pause
Gilles Chanteperdrix
gilles.chanteperdrix at xenomai.org
Sun Feb 22 07:59:55 CET 2015
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 <gilles.chanteperdrix at xenomai.org>
---
libavformat/rtspdec.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c
index fa7383c..bfbe52b 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,
--
1.8.4
More information about the ffmpeg-devel
mailing list