* RTSP definitions
* Copyright (c) 2002 Fabrice Bellard
*
- * This file is part of Libav.
+ * This file is part of FFmpeg.
*
- * Libav is free software; you can redistribute it and/or
+ * 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.1 of the License, or (at your option) any later version.
*
- * Libav 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 Libav; if not, write to the Free Software
+ * License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef AVFORMAT_RTSP_H
#include "rtpdec.h"
#include "network.h"
#include "httpauth.h"
+#include "internal.h"
#include "libavutil/log.h"
#include "libavutil/opt.h"
RTSP_LOWER_TRANSPORT_HTTP = 8, /**< HTTP tunneled - not a proper
transport mode as such,
only for use via AVOptions */
+ RTSP_LOWER_TRANSPORT_HTTPS, /**< HTTPS tunneled */
RTSP_LOWER_TRANSPORT_CUSTOM = 16, /**< Custom IO - not a public
option for lower_transport_mask,
but set in the SDP demuxer based
#define RTSP_DEFAULT_NB_AUDIO_CHANNELS 1
#define RTSP_DEFAULT_AUDIO_SAMPLERATE 44100
#define RTSP_RTP_PORT_MIN 5000
-#define RTSP_RTP_PORT_MAX 10000
+#define RTSP_RTP_PORT_MAX 65000
+#define SDP_MAX_SIZE 16384
/**
* This describes a single item in the "Transport:" line of one stream as
* Content type header
*/
char content_type[64];
+
+ /**
+ * SAT>IP com.ses.streamID header
+ */
+ char stream_id[64];
} RTSPMessageHeader;
/**
RTSP_SERVER_RTP, /**< Standards-compliant RTP-server */
RTSP_SERVER_REAL, /**< Realmedia-style server */
RTSP_SERVER_WMS, /**< Windows Media server */
+ RTSP_SERVER_SATIP,/**< SAT>IP server */
RTSP_SERVER_NB
};
/** some MS RTSP streams contain a URL in the SDP that we need to use
* for all subsequent RTSP requests, rather than the input URI; in
* other cases, this is a copy of AVFormatContext->filename. */
- char control_uri[1024];
+ char control_uri[MAX_URL_SIZE];
/** The following are used for parsing raw mpegts in udp */
//@{
*/
int initial_timeout;
+ /**
+ * timeout of socket i/o operations.
+ */
+ int stimeout;
+
/**
* Size of RTP packet reordering queue.
*/
int reordering_queue_size;
+ /**
+ * User-Agent string
+ */
+ char *user_agent;
+
char default_lang[4];
int buffer_size;
int pkt_size;
-
- const URLProtocol **protocols;
} RTSPState;
#define RTSP_FLAG_FILTER_SRC 0x1 /**< Filter incoming UDP packets -
#define RTSP_FLAG_CUSTOM_IO 0x4 /**< Do all IO via the AVIOContext. */
#define RTSP_FLAG_RTCP_TO_SOURCE 0x8 /**< Send RTCP packets to the source
address of received packets. */
+#define RTSP_FLAG_PREFER_TCP 0x10 /**< Try RTP via TCP first if possible. */
+#define RTSP_FLAG_SATIP_RAW 0x20 /**< Export SAT>IP stream as raw MPEG-TS */
typedef struct RTSPSource {
char addr[128]; /**< Source-specific multicast include source IP address (from SDP content) */
* for the selected transport. Only used for TCP. */
int interleaved_min, interleaved_max;
- char control_url[1024]; /**< url for this stream (from SDP) */
+ char control_url[MAX_URL_SIZE]; /**< url for this stream (from SDP) */
/** The following are used only in SDP, not RTSP */
//@{
/** The following are used for dynamic protocols (rtpdec_*.c/rdt.c) */
//@{
/** handler structure */
- RTPDynamicProtocolHandler *dynamic_handler;
+ const RTPDynamicProtocolHandler *dynamic_handler;
/** private data associated with the dynamic protocol */
PayloadContext *dynamic_protocol_context;