[FFmpeg-cvslog] avformat/rtsp: punch holes again after pause

Gilles Chanteperdrix git at videolan.org
Sun Feb 22 14:35:30 CET 2015


ffmpeg | branch: master | Gilles Chanteperdrix <gilles.chanteperdrix at xenomai.org> | Sun Feb 22 07:59:55 2015 +0100| [22bb5bd7a3b55c25bfef130ad89e8574dd47af1d] | committer: Michael Niedermayer

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 <gilles.chanteperdrix at xenomai.org>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=22bb5bd7a3b55c25bfef130ad89e8574dd47af1d
---

 libavformat/rtspdec.c |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c
index c899498..f4255f2 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,



More information about the ffmpeg-cvslog mailing list