annotate rtsp.h @ 5482:68c900a2d203 libavformat

Deprecate and mark for deletion the function guess_stream_format(), and clone its code to ffserver_guess_format() in ffserver.c. guess_stream_format() is hackish since it relies on some undocumented properties of the name of the muxers (wich is currently only relevant for the ASF muxer), and has no use outside ffserver.c.
author stefano
date Thu, 31 Dec 2009 14:12:58 +0000
parents 715913c5514f
children 016f3d4fe56d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
1 /*
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
2 * RTSP definitions
4251
77e0c7511d41 cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents: 4171
diff changeset
3 * Copyright (c) 2002 Fabrice Bellard
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
4 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1167
diff changeset
5 * This file is part of FFmpeg.
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1167
diff changeset
6 *
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1167
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1167
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
11 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1167
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
15 * Lesser General Public License for more details.
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
16 *
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1167
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
896
edbe5c3717f9 Update licensing information: The FSF changed postal address.
diego
parents: 885
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
20 */
5104
4c39baa3dfbf Use globally consistent include guard names.
stefano
parents: 5013
diff changeset
21 #ifndef AVFORMAT_RTSP_H
4c39baa3dfbf Use globally consistent include guard names.
stefano
parents: 5013
diff changeset
22 #define AVFORMAT_RTSP_H
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
23
2171
a6d6b2b19341 include all prerequisites in header files
mru
parents: 2048
diff changeset
24 #include <stdint.h>
a6d6b2b19341 include all prerequisites in header files
mru
parents: 2048
diff changeset
25 #include "avformat.h"
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
26 #include "rtspcodes.h"
4388
80f21f72d7d6 Split rtp.h in rtp.h, rtpdec.h, and rtpenc.h
lucabe
parents: 4386
diff changeset
27 #include "rtpdec.h"
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
28 #include "network.h"
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
29
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
30 /**
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
31 * Network layer over which RTP/etc packet data will be transported.
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
32 */
3957
9f943bb755f9 Rename RTSPProtocol to RTSPLowerTransport, so that its name properly tells us
rbultje
parents: 3855
diff changeset
33 enum RTSPLowerTransport {
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
34 RTSP_LOWER_TRANSPORT_UDP = 0, /**< UDP/unicast */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
35 RTSP_LOWER_TRANSPORT_TCP = 1, /**< TCP; interleaved in RTSP */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
36 RTSP_LOWER_TRANSPORT_UDP_MULTICAST = 2, /**< UDP/multicast */
4514
2a84d46427d1 Rename RTSP_*_LAST to RTSP_*_NB in line with PIX_FMT_* in lavc. See "[PATCH]
rbultje
parents: 4512
diff changeset
37 RTSP_LOWER_TRANSPORT_NB
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
38 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
39
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
40 /**
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
41 * Packet profile of the data that we will be receiving. Real servers
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
42 * commonly send RDT (although they can sometimes send RTP as well),
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
43 * whereas most others will send RTP.
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
44 */
4377
8d6f64b2e949 Move enum RTSPTransport up a bit, so that all fields that are assigned a value
rbultje
parents: 4251
diff changeset
45 enum RTSPTransport {
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
46 RTSP_TRANSPORT_RTP, /**< Standards-compliant RTP */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
47 RTSP_TRANSPORT_RDT, /**< Realmedia Data Transport */
4514
2a84d46427d1 Rename RTSP_*_LAST to RTSP_*_NB in line with PIX_FMT_* in lavc. See "[PATCH]
rbultje
parents: 4512
diff changeset
48 RTSP_TRANSPORT_NB
4377
8d6f64b2e949 Move enum RTSPTransport up a bit, so that all fields that are assigned a value
rbultje
parents: 4251
diff changeset
49 };
8d6f64b2e949 Move enum RTSPTransport up a bit, so that all fields that are assigned a value
rbultje
parents: 4251
diff changeset
50
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
51 #define RTSP_DEFAULT_PORT 554
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
52 #define RTSP_MAX_TRANSPORTS 8
179
43ac45200138 suppressed RTSP abort hack - added PLAY/PAUSE
bellard
parents: 65
diff changeset
53 #define RTSP_TCP_MAX_PACKET_SIZE 1472
774
820863425158 RTP/RTSP and MPEG4-AAC audio
michael
parents: 304
diff changeset
54 #define RTSP_DEFAULT_NB_AUDIO_CHANNELS 2
820863425158 RTP/RTSP and MPEG4-AAC audio
michael
parents: 304
diff changeset
55 #define RTSP_DEFAULT_AUDIO_SAMPLERATE 44100
820863425158 RTP/RTSP and MPEG4-AAC audio
michael
parents: 304
diff changeset
56 #define RTSP_RTP_PORT_MIN 5000
820863425158 RTP/RTSP and MPEG4-AAC audio
michael
parents: 304
diff changeset
57 #define RTSP_RTP_PORT_MAX 10000
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
58
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
59 /**
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
60 * This describes a single item in the "Transport:" line of one stream as
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
61 * negotiated by the SETUP RTSP command. Multiple transports are comma-
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
62 * separated ("Transport: x-read-rdt/tcp;interleaved=0-1,rtp/avp/udp;
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
63 * client_port=1000-1001;server_port=1800-1801") and described in separate
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
64 * RTSPTransportFields.
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
65 */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
66 typedef struct RTSPTransportField {
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
67 /** interleave ids, if TCP transport; each TCP/RTSP data packet starts
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
68 * with a '$', stream length and stream ID. If the stream ID is within
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
69 * the range of this interleaved_min-max, then the packet belongs to
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
70 * this stream. */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
71 int interleaved_min, interleaved_max;
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
72
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
73 /** UDP multicast port range; the ports to which we should connect to
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
74 * receive multicast UDP data. */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
75 int port_min, port_max;
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
76
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
77 /** UDP client ports; these should be the local ports of the UDP RTP
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
78 * (and RTCP) sockets over which we receive RTP/RTCP data. */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
79 int client_port_min, client_port_max;
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
80
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
81 /** UDP unicast server port range; the ports to which we should connect
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
82 * to receive unicast UDP RTP/RTCP data. */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
83 int server_port_min, server_port_max;
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
84
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
85 /** time-to-live value (required for multicast); the amount of HOPs that
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
86 * packets will be allowed to make before being discarded. */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
87 int ttl;
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
88
1871
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
89 uint32_t destination; /**< destination IP address */
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
90
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
91 /** data/packet transport protocol; e.g. RTP or RDT */
4377
8d6f64b2e949 Move enum RTSPTransport up a bit, so that all fields that are assigned a value
rbultje
parents: 4251
diff changeset
92 enum RTSPTransport transport;
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
93
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
94 /** network layer transport protocol; e.g. TCP or UDP uni-/multicast */
3957
9f943bb755f9 Rename RTSPProtocol to RTSPLowerTransport, so that its name properly tells us
rbultje
parents: 3855
diff changeset
95 enum RTSPLowerTransport lower_transport;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
96 } RTSPTransportField;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
97
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
98 /**
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
99 * This describes the server response to each RTSP command.
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
100 */
4557
bfe6fb676d46 Rename RTSPHeader to RTSPMessageHeader to reflect more clearly what the
rbultje
parents: 4514
diff changeset
101 typedef struct RTSPMessageHeader {
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
102 /** length of the data following this header */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
103 int content_length;
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
104
1871
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
105 enum RTSPStatusCode status_code; /**< response code from server */
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
106
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
107 /** number of items in the 'transports' variable below */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
108 int nb_transports;
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
109
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
110 /** Time range of the streams that the server will stream. In
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
111 * AV_TIME_BASE unit, AV_NOPTS_VALUE if not used */
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 774
diff changeset
112 int64_t range_start, range_end;
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
113
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
114 /** describes the complete "Transport:" line of the server in response
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
115 * to a SETUP RTSP command by the client */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
116 RTSPTransportField transports[RTSP_MAX_TRANSPORTS];
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
117
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
118 int seq; /**< sequence number */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
119
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
120 /** the "Session:" field. This value is initially set by the server and
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
121 * should be re-transmitted by the client in every RTSP command. */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
122 char session_id[512];
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
123
5333
715913c5514f Support 3xx redirection in rtsp
lu_zero
parents: 5220
diff changeset
124 /** the "Location:" field. This value is used to handle redirection.
715913c5514f Support 3xx redirection in rtsp
lu_zero
parents: 5220
diff changeset
125 */
715913c5514f Support 3xx redirection in rtsp
lu_zero
parents: 5220
diff changeset
126 char location[4096];
715913c5514f Support 3xx redirection in rtsp
lu_zero
parents: 5220
diff changeset
127
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
128 /** the "RealChallenge1:" field from the server */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
129 char real_challenge[64];
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
130
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
131 /** the "Server: field, which can be used to identify some special-case
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
132 * servers that are not 100% standards-compliant. We use this to identify
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
133 * Windows Media Server, which has a value "WMServer/v.e.r.sion", where
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
134 * version is a sequence of digits (e.g. 9.0.0.3372). Helix/Real servers
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
135 * use something like "Helix [..] Server Version v.e.r.sion (platform)
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
136 * (RealServer compatible)" or "RealServer Version v.e.r.sion (platform)",
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
137 * where platform is the output of $uname -msr | sed 's/ /-/g'. */
4169
619845a9bab3 Use the "server" RTSP field to detect whether the server that we're talking
rbultje
parents: 4168
diff changeset
138 char server[64];
4877
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
139
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
140 /** The "timeout" comes as part of the server response to the "SETUP"
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
141 * command, in the "Session: <xyz>[;timeout=<value>]" line. It is the
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
142 * time, in seconds, that the server will go without traffic over the
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
143 * RTSP/TCP connection before it closes the connection. To prevent
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
144 * this, sent dummy requests (e.g. OPTIONS) with intervals smaller
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
145 * than this value. */
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
146 int timeout;
5112
85e0a9761818 Implement support for EOS as used by WMS and other RTSP servers that do not
rbultje
parents: 5111
diff changeset
147
85e0a9761818 Implement support for EOS as used by WMS and other RTSP servers that do not
rbultje
parents: 5111
diff changeset
148 /** The "Notice" or "X-Notice" field value. See
85e0a9761818 Implement support for EOS as used by WMS and other RTSP servers that do not
rbultje
parents: 5111
diff changeset
149 * http://tools.ietf.org/html/draft-stiemerling-rtsp-announce-00
85e0a9761818 Implement support for EOS as used by WMS and other RTSP servers that do not
rbultje
parents: 5111
diff changeset
150 * for a complete list of supported values. */
85e0a9761818 Implement support for EOS as used by WMS and other RTSP servers that do not
rbultje
parents: 5111
diff changeset
151 int notice;
4557
bfe6fb676d46 Rename RTSPHeader to RTSPMessageHeader to reflect more clearly what the
rbultje
parents: 4514
diff changeset
152 } RTSPMessageHeader;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
153
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
154 /**
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
155 * Client state, i.e. whether we are currently receiving data (PLAYING) or
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
156 * setup-but-not-receiving (PAUSED). State can be changed in applications
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
157 * by calling av_read_play/pause().
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
158 */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
159 enum RTSPClientState {
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
160 RTSP_STATE_IDLE, /**< not initialized */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
161 RTSP_STATE_PLAYING, /**< initialized and receiving data */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
162 RTSP_STATE_PAUSED, /**< initialized, but not receiving data */
5013
43d99d0e12e0 Support seeking as defined by the rfc
lu_zero
parents: 5006
diff changeset
163 RTSP_STATE_SEEKING, /**< initialized, requesting a seek */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
164 };
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
165
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
166 /**
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
167 * Identifies particular servers that require special handling, such as
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
168 * standards-incompliant "Transport:" lines in the SETUP request.
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
169 */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
170 enum RTSPServerType {
4171
6af3e7ab7cbb Fix typo ("Standard-compliant" -> "Standards-compliant"), as noticed by
rbultje
parents: 4170
diff changeset
171 RTSP_SERVER_RTP, /**< Standards-compliant RTP-server */
4170
89d38f054035 Fix doxy comments missing one '*'.
rbultje
parents: 4169
diff changeset
172 RTSP_SERVER_REAL, /**< Realmedia-style server */
89d38f054035 Fix doxy comments missing one '*'.
rbultje
parents: 4169
diff changeset
173 RTSP_SERVER_WMS, /**< Windows Media server */
4514
2a84d46427d1 Rename RTSP_*_LAST to RTSP_*_NB in line with PIX_FMT_* in lavc. See "[PATCH]
rbultje
parents: 4512
diff changeset
174 RTSP_SERVER_NB
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
175 };
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
176
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
177 /**
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
178 * Private data for the RTSP demuxer.
4771
2e0ea6f96564 Add a @todo item to use ByteIOContext instead of URLContext at some point in
rbultje
parents: 4744
diff changeset
179 *
2e0ea6f96564 Add a @todo item to use ByteIOContext instead of URLContext at some point in
rbultje
parents: 4744
diff changeset
180 * @todo Use ByteIOContext instead of URLContext
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
181 */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
182 typedef struct RTSPState {
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
183 URLContext *rtsp_hd; /* RTSP TCP connexion handle */
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
184
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
185 /** number of items in the 'rtsp_streams' variable */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
186 int nb_rtsp_streams;
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
187
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
188 struct RTSPStream **rtsp_streams; /**< streams in this session */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
189
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
190 /** indicator of whether we are currently receiving data from the
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
191 * server. Basically this isn't more than a simple cache of the
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
192 * last PLAY/PAUSE command sent to the server, to make sure we don't
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
193 * send 2x the same unexpectedly or commands in the wrong state. */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
194 enum RTSPClientState state;
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
195
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
196 /** the seek value requested when calling av_seek_frame(). This value
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
197 * is subsequently used as part of the "Range" parameter when emitting
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
198 * the RTSP PLAY command. If we are currently playing, this command is
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
199 * called instantly. If we are currently paused, this command is called
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
200 * whenever we resume playback. Either way, the value is only used once,
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
201 * see rtsp_read_play() and rtsp_read_seek(). */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
202 int64_t seek_timestamp;
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
203
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
204 /* XXX: currently we use unbuffered input */
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
205 // ByteIOContext rtsp_gb;
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
206
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
207 int seq; /**< RTSP command sequence number */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
208
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
209 /** copy of RTSPMessageHeader->session_id, i.e. the server-provided session
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
210 * identifier that the client should re-transmit in each RTSP command */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
211 char session_id[512];
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
212
4877
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
213 /** copy of RTSPMessageHeader->timeout, i.e. the time (in seconds) that
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
214 * the server will go without traffic on the RTSP/TCP line before it
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
215 * closes the connection. */
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
216 int timeout;
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
217
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
218 /** timestamp of the last RTSP command that we sent to the RTSP server.
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
219 * This is used to calculate when to send dummy commands to keep the
5006
686de8748c36 Remove '\p', '\c' and '\e' doxygen markup from doxy, as it should
stefano
parents: 4877
diff changeset
220 * connection alive, in conjunction with timeout. */
4877
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
221 int64_t last_cmd_time;
940946a4569b Send dummy requests over the TCP connection (WMS wants GET_PARAMETER,
rbultje
parents: 4771
diff changeset
222
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
223 /** the negotiated data/packet transport protocol; e.g. RTP or RDT */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
224 enum RTSPTransport transport;
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
225
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
226 /** the negotiated network layer transport protocol; e.g. TCP or UDP
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
227 * uni-/multicast */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
228 enum RTSPLowerTransport lower_transport;
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
229
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
230 /** brand of server that we're talking to; e.g. WMS, REAL or other.
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
231 * Detected based on the value of RTSPMessageHeader->server or the presence
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
232 * of RTSPMessageHeader->real_challenge */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
233 enum RTSPServerType server_type;
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
234
5220
cad276e8f96e RTSP basic authentication, patch originally by Philip Coombes
rbultje
parents: 5112
diff changeset
235 /** base64-encoded authorization lines (username:password) */
cad276e8f96e RTSP basic authentication, patch originally by Philip Coombes
rbultje
parents: 5112
diff changeset
236 char *auth_b64;
cad276e8f96e RTSP basic authentication, patch originally by Philip Coombes
rbultje
parents: 5112
diff changeset
237
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
238 /** The last reply of the server to a RTSP command */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
239 char last_reply[2048]; /* XXX: allocate ? */
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
240
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
241 /** RTSPStream->transport_priv of the last stream that we read a
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
242 * packet from */
4386
3dbd7fa2c2af Rename "tx_ctx" and "cur_tx" variables to "transport_priv" and
rbultje
parents: 4381
diff changeset
243 void *cur_transport_priv;
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
244
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
245 /** The following are used for Real stream selection */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
246 //@{
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
247 /** whether we need to send a "SET_PARAMETER Subscribe:" command */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
248 int need_subscription;
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
249
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
250 /** stream setup during the last frame read. This is used to detect if
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
251 * we need to subscribe or unsubscribe to any new streams. */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
252 enum AVDiscard real_setup_cache[MAX_STREAMS];
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
253
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
254 /** the last value of the "SET_PARAMETER Subscribe:" RTSP command.
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
255 * this is used to send the same "Unsubscribe:" if stream setup changed,
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
256 * before sending a new "Subscribe:" command. */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
257 char last_subscription[1024];
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
258 //@}
4744
51899c07a4f1 Add RTP/ASF header parsing, which is part of the SDP of these streams. See
rbultje
parents: 4588
diff changeset
259
51899c07a4f1 Add RTP/ASF header parsing, which is part of the SDP of these streams. See
rbultje
parents: 4588
diff changeset
260 /** The following are used for RTP/ASF streams */
51899c07a4f1 Add RTP/ASF header parsing, which is part of the SDP of these streams. See
rbultje
parents: 4588
diff changeset
261 //@{
51899c07a4f1 Add RTP/ASF header parsing, which is part of the SDP of these streams. See
rbultje
parents: 4588
diff changeset
262 /** ASF demuxer context for the embedded ASF stream from WMS servers */
51899c07a4f1 Add RTP/ASF header parsing, which is part of the SDP of these streams. See
rbultje
parents: 4588
diff changeset
263 AVFormatContext *asf_ctx;
5111
aa0edc246bca Implement RTSP-MS/ASF packet parsing - this completes RTSP-MS support. See
rbultje
parents: 5104
diff changeset
264
aa0edc246bca Implement RTSP-MS/ASF packet parsing - this completes RTSP-MS support. See
rbultje
parents: 5104
diff changeset
265 /** cache for position of the asf demuxer, since we load a new
aa0edc246bca Implement RTSP-MS/ASF packet parsing - this completes RTSP-MS support. See
rbultje
parents: 5104
diff changeset
266 * data packet in the bytecontext for each incoming RTSP packet. */
aa0edc246bca Implement RTSP-MS/ASF packet parsing - this completes RTSP-MS support. See
rbultje
parents: 5104
diff changeset
267 uint64_t asf_pb_pos;
4744
51899c07a4f1 Add RTP/ASF header parsing, which is part of the SDP of these streams. See
rbultje
parents: 4588
diff changeset
268 //@}
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
269 } RTSPState;
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
270
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
271 /**
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
272 * Describes a single stream, as identified by a single m= line block in the
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
273 * SDP content. In the case of RDT, one RTSPStream can represent multiple
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
274 * AVStreams. In this case, each AVStream in this set has similar content
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
275 * (but different codec/bitrate).
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
276 */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
277 typedef struct RTSPStream {
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
278 URLContext *rtp_handle; /**< RTP stream handle (if UDP) */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
279 void *transport_priv; /**< RTP/RDT parse context */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
280
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
281 /** corresponding stream index, if any. -1 if none (MPEG2TS case) */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
282 int stream_index;
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
283
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
284 /** interleave IDs; copies of RTSPTransportField->interleaved_min/max
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
285 * for the selected transport. Only used for TCP. */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
286 int interleaved_min, interleaved_max;
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
287
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
288 char control_url[1024]; /**< url for this stream (from SDP) */
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
289
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
290 /** The following are used only in SDP, not RTSP */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
291 //@{
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
292 int sdp_port; /**< port (from SDP content) */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
293 struct in_addr sdp_ip; /**< IP address (from SDP content) */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
294 int sdp_ttl; /**< IP Time-To-Live (from SDP content) */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
295 int sdp_payload_type; /**< payload type */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
296 //@}
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
297
4588
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
298 /** rtp payload parsing infos from SDP (i.e. mapping between private
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
299 * payload IDs and media-types (string), so that we can derive what
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
300 * type of payload we're dealing with (and how to parse it). */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
301 RTPPayloadData rtp_payload_data;
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
302
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
303 /** The following are used for dynamic protocols (rtp_*.c/rdt.c) */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
304 //@{
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
305 /** handler structure */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
306 RTPDynamicProtocolHandler *dynamic_handler;
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
307
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
308 /** private data associated with the dynamic protocol */
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
309 PayloadContext *dynamic_protocol_context;
e1a5b4f5b9be Document rtsp.h, see "[PATCH] document rtsp.h" thread.
rbultje
parents: 4557
diff changeset
310 //@}
4168
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
311 } RTSPStream;
0ebf63d12ea4 Export RTSPState and RTSPStream from rtsp.c into rtsp.h. This allows future
rbultje
parents: 3960
diff changeset
312
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
313 int rtsp_init(void);
4557
bfe6fb676d46 Rename RTSPHeader to RTSPMessageHeader to reflect more clearly what the
rbultje
parents: 4514
diff changeset
314 void rtsp_parse_line(RTSPMessageHeader *reply, const char *buf);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
315
2884
e6e7ba123447 Drop RTSP default protocol.
diego
parents: 2620
diff changeset
316 #if LIBAVFORMAT_VERSION_INT < (53 << 16)
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
317 extern int rtsp_default_protocols;
2884
e6e7ba123447 Drop RTSP default protocol.
diego
parents: 2620
diff changeset
318 #endif
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
319 extern int rtsp_rtp_port_min;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
320 extern int rtsp_rtp_port_max;
179
43ac45200138 suppressed RTSP abort hack - added PLAY/PAUSE
bellard
parents: 65
diff changeset
321
43ac45200138 suppressed RTSP abort hack - added PLAY/PAUSE
bellard
parents: 65
diff changeset
322 int rtsp_pause(AVFormatContext *s);
43ac45200138 suppressed RTSP abort hack - added PLAY/PAUSE
bellard
parents: 65
diff changeset
323 int rtsp_resume(AVFormatContext *s);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
324
5104
4c39baa3dfbf Use globally consistent include guard names.
stefano
parents: 5013
diff changeset
325 #endif /* AVFORMAT_RTSP_H */