diff rtsp.h @ 4877:940946a4569b libavformat

Send dummy requests over the TCP connection (WMS wants GET_PARAMETER, Real wants OPTIONS) while the connection is idle, otherwise it will be aborted after a short period (usually a minute). See the thread "[PATCH] rtsp.c: keep-alive" on the mailinglist.
author rbultje
date Wed, 15 Apr 2009 13:04:34 +0000
parents 2e0ea6f96564
children 686de8748c36
line wrap: on
line diff
--- a/rtsp.h	Wed Apr 15 06:41:08 2009 +0000
+++ b/rtsp.h	Wed Apr 15 13:04:34 2009 +0000
@@ -132,6 +132,14 @@
      * (RealServer compatible)" or "RealServer Version v.e.r.sion (platform)",
      * where platform is the output of $uname -msr | sed 's/ /-/g'. */
     char server[64];
+
+    /** The "timeout" comes as part of the server response to the "SETUP"
+     * command, in the "Session: <xyz>[;timeout=<value>]" line. It is the
+     * time, in seconds, that the server will go without traffic over the
+     * RTSP/TCP connection before it closes the connection. To prevent
+     * this, sent dummy requests (e.g. OPTIONS) with intervals smaller
+     * than this value. */
+    int timeout;
 } RTSPMessageHeader;
 
 /**
@@ -192,6 +200,16 @@
      * identifier that the client should re-transmit in each RTSP command */
     char session_id[512];
 
+    /** copy of RTSPMessageHeader->timeout, i.e. the time (in seconds) that
+     * the server will go without traffic on the RTSP/TCP line before it
+     * closes the connection. */
+    int timeout;
+
+    /** timestamp of the last RTSP command that we sent to the RTSP server.
+     * This is used to calculate when to send dummy commands to keep the
+     * connection alive, in conjunction with \p timeout. */
+    int64_t last_cmd_time;
+
     /** the negotiated data/packet transport protocol; e.g. RTP or RDT */
     enum RTSPTransport transport;