]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/rtsp.h
Move AC3 header parsing code together with the rest of the AC3 parsing code.
[ffmpeg] / libavformat / rtsp.h
index 3dd231571e79bd20e75c4990da95e8575e1bfe1c..481e2ba499983ade91ed143d221744fb6d3f0b16 100644 (file)
@@ -2,29 +2,26 @@
  * RTSP definitions
  * Copyright (c) 2002 Fabrice Bellard.
  *
- * This library is free software; you can redistribute it and/or
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 2.1 of the License, or (at your option) any later version.
  *
- * This library is distributed in the hope that it will be useful,
+ * FFmpeg is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 #ifndef RTSP_H
 #define RTSP_H
 
-/* RTSP handling */
-enum RTSPStatusCode {
-#define DEF(n, c, s) c = n,
 #include "rtspcodes.h"
-#undef DEF
-};
 
 enum RTSPProtocol {
     RTSP_PROTOCOL_RTP_UDP = 0,
@@ -34,27 +31,34 @@ enum RTSPProtocol {
 
 #define RTSP_DEFAULT_PORT   554
 #define RTSP_MAX_TRANSPORTS 8
+#define RTSP_TCP_MAX_PACKET_SIZE 1472
+#define RTSP_DEFAULT_NB_AUDIO_CHANNELS 2
+#define RTSP_DEFAULT_AUDIO_SAMPLERATE 44100
+#define RTSP_RTP_PORT_MIN 5000
+#define RTSP_RTP_PORT_MAX 10000
 
 typedef struct RTSPTransportField {
-    int interleaved_min, interleaved_max;  /* interleave ids, if TCP transport */
-    int port_min, port_max; /* RTP ports */
-    int client_port_min, client_port_max; /* RTP ports */
-    int server_port_min, server_port_max; /* RTP ports */
-    int ttl; /* ttl value */
-    UINT32 destination; /* destination IP address */
+    int interleaved_min, interleaved_max;  /**< interleave ids, if TCP transport */
+    int port_min, port_max; /**< RTP ports */
+    int client_port_min, client_port_max; /**< RTP ports */
+    int server_port_min, server_port_max; /**< RTP ports */
+    int ttl; /**< ttl value */
+    uint32_t destination; /**< destination IP address */
     enum RTSPProtocol protocol;
 } RTSPTransportField;
 
 typedef struct RTSPHeader {
     int content_length;
-    enum RTSPStatusCode status_code; /* response code from server */
+    enum RTSPStatusCode status_code; /**< response code from server */
     int nb_transports;
+    /** in AV_TIME_BASE unit, AV_NOPTS_VALUE if not used */
+    int64_t range_start, range_end;
     RTSPTransportField transports[RTSP_MAX_TRANSPORTS];
-    int seq; /* sequence number */
+    int seq; /**< sequence number */
     char session_id[512];
 } RTSPHeader;
 
-/* the callback can be used to extend the connection setup/teardown step */
+/** the callback can be used to extend the connection setup/teardown step */
 enum RTSPCallbackAction {
     RTSP_ACTION_SERVER_SETUP,
     RTSP_ACTION_SERVER_TEARDOWN,
@@ -63,24 +67,28 @@ enum RTSPCallbackAction {
 };
 
 typedef struct RTSPActionServerSetup {
-    UINT32 ipaddr;
+    uint32_t ipaddr;
     char transport_option[512];
 } RTSPActionServerSetup;
 
-typedef int FFRTSPCallback(enum RTSPCallbackAction action, 
+typedef int FFRTSPCallback(enum RTSPCallbackAction action,
                            const char *session_id,
                            char *buf, int buf_size,
                            void *arg);
 
+/** useful for modules: set RTSP callback function */
 void rtsp_set_callback(FFRTSPCallback *rtsp_cb);
 
 int rtsp_init(void);
 void rtsp_parse_line(RTSPHeader *reply, const char *buf);
 
-extern int rtsp_abort_req;
 extern int rtsp_default_protocols;
 extern int rtsp_rtp_port_min;
 extern int rtsp_rtp_port_max;
 extern FFRTSPCallback *ff_rtsp_callback;
+extern AVInputFormat rtsp_demuxer;
+
+int rtsp_pause(AVFormatContext *s);
+int rtsp_resume(AVFormatContext *s);
 
 #endif /* RTSP_H */