annotate rtsp.h @ 3957:9f943bb755f9 libavformat

Rename RTSPProtocol to RTSPLowerTransport, so that its name properly tells us that it only describes the lower-level transport (TCP vs. UDP) and not the actual data layout (e.g. RDT vs. RTP). See discussion in "Realmedia patch" thread on ML.
author rbultje
date Tue, 30 Sep 2008 13:18:41 +0000
parents c9550824fd1c
children 13e9b0d3a314
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
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
3 * Copyright (c) 2002 Fabrice Bellard.
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 */
3853
8137bcada0cd Revert back to old version (r15103).
rbultje
parents: 3852
diff changeset
21 #ifndef FFMPEG_RTSP_H
8137bcada0cd Revert back to old version (r15103).
rbultje
parents: 3852
diff changeset
22 #define FFMPEG_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"
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
27
3957
9f943bb755f9 Rename RTSPProtocol to RTSPLowerTransport, so that its name properly tells us
rbultje
parents: 3855
diff changeset
28 enum RTSPLowerTransport {
9f943bb755f9 Rename RTSPProtocol to RTSPLowerTransport, so that its name properly tells us
rbultje
parents: 3855
diff changeset
29 RTSP_LOWER_TRANSPORT_UDP = 0,
9f943bb755f9 Rename RTSPProtocol to RTSPLowerTransport, so that its name properly tells us
rbultje
parents: 3855
diff changeset
30 RTSP_LOWER_TRANSPORT_TCP = 1,
9f943bb755f9 Rename RTSPProtocol to RTSPLowerTransport, so that its name properly tells us
rbultje
parents: 3855
diff changeset
31 RTSP_LOWER_TRANSPORT_UDP_MULTICAST = 2,
3149
5a7a7406ab1f Allow cycling between different protocols (TCP, UDP or multicast) so that if
rbultje
parents: 2884
diff changeset
32 /**
5a7a7406ab1f Allow cycling between different protocols (TCP, UDP or multicast) so that if
rbultje
parents: 2884
diff changeset
33 * This is not part of public API and shouldn't be used outside of ffmpeg.
5a7a7406ab1f Allow cycling between different protocols (TCP, UDP or multicast) so that if
rbultje
parents: 2884
diff changeset
34 */
3957
9f943bb755f9 Rename RTSPProtocol to RTSPLowerTransport, so that its name properly tells us
rbultje
parents: 3855
diff changeset
35 RTSP_LOWER_TRANSPORT_LAST
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
36 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
37
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
38 #define RTSP_DEFAULT_PORT 554
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
39 #define RTSP_MAX_TRANSPORTS 8
179
43ac45200138 suppressed RTSP abort hack - added PLAY/PAUSE
bellard
parents: 65
diff changeset
40 #define RTSP_TCP_MAX_PACKET_SIZE 1472
774
820863425158 RTP/RTSP and MPEG4-AAC audio
michael
parents: 304
diff changeset
41 #define RTSP_DEFAULT_NB_AUDIO_CHANNELS 2
820863425158 RTP/RTSP and MPEG4-AAC audio
michael
parents: 304
diff changeset
42 #define RTSP_DEFAULT_AUDIO_SAMPLERATE 44100
820863425158 RTP/RTSP and MPEG4-AAC audio
michael
parents: 304
diff changeset
43 #define RTSP_RTP_PORT_MIN 5000
820863425158 RTP/RTSP and MPEG4-AAC audio
michael
parents: 304
diff changeset
44 #define RTSP_RTP_PORT_MAX 10000
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
45
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
46 typedef struct RTSPTransportField {
1871
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
47 int interleaved_min, interleaved_max; /**< interleave ids, if TCP transport */
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
48 int port_min, port_max; /**< RTP ports */
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
49 int client_port_min, client_port_max; /**< RTP ports */
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
50 int server_port_min, server_port_max; /**< RTP ports */
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
51 int ttl; /**< ttl value */
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
52 uint32_t destination; /**< destination IP address */
3957
9f943bb755f9 Rename RTSPProtocol to RTSPLowerTransport, so that its name properly tells us
rbultje
parents: 3855
diff changeset
53 enum RTSPLowerTransport lower_transport;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
54 } RTSPTransportField;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
55
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
56 typedef struct RTSPHeader {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
57 int content_length;
1871
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
58 enum RTSPStatusCode status_code; /**< response code from server */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
59 int nb_transports;
1871
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
60 /** in AV_TIME_BASE unit, AV_NOPTS_VALUE if not used */
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 774
diff changeset
61 int64_t range_start, range_end;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
62 RTSPTransportField transports[RTSP_MAX_TRANSPORTS];
1871
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
63 int seq; /**< sequence number */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
64 char session_id[512];
3855
c9550824fd1c Read RealChallenge1 field from the server.
rbultje
parents: 3853
diff changeset
65 char real_challenge[64]; /**< the RealChallenge1 field from the server */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
66 } RTSPHeader;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
67
1871
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
68 /** the callback can be used to extend the connection setup/teardown step */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
69 enum RTSPCallbackAction {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
70 RTSP_ACTION_SERVER_SETUP,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
71 RTSP_ACTION_SERVER_TEARDOWN,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
72 RTSP_ACTION_CLIENT_SETUP,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
73 RTSP_ACTION_CLIENT_TEARDOWN,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
74 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
75
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
76 typedef struct RTSPActionServerSetup {
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 0
diff changeset
77 uint32_t ipaddr;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
78 char transport_option[512];
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
79 } RTSPActionServerSetup;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
80
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 774
diff changeset
81 typedef int FFRTSPCallback(enum RTSPCallbackAction action,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
82 const char *session_id,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
83 char *buf, int buf_size,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
84 void *arg);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
85
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
86 int rtsp_init(void);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
87 void rtsp_parse_line(RTSPHeader *reply, const char *buf);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
88
2884
e6e7ba123447 Drop RTSP default protocol.
diego
parents: 2620
diff changeset
89 #if LIBAVFORMAT_VERSION_INT < (53 << 16)
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
90 extern int rtsp_default_protocols;
2884
e6e7ba123447 Drop RTSP default protocol.
diego
parents: 2620
diff changeset
91 #endif
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
92 extern int rtsp_rtp_port_min;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
93 extern int rtsp_rtp_port_max;
179
43ac45200138 suppressed RTSP abort hack - added PLAY/PAUSE
bellard
parents: 65
diff changeset
94
43ac45200138 suppressed RTSP abort hack - added PLAY/PAUSE
bellard
parents: 65
diff changeset
95 int rtsp_pause(AVFormatContext *s);
43ac45200138 suppressed RTSP abort hack - added PLAY/PAUSE
bellard
parents: 65
diff changeset
96 int rtsp_resume(AVFormatContext *s);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
97
3853
8137bcada0cd Revert back to old version (r15103).
rbultje
parents: 3852
diff changeset
98 #endif /* FFMPEG_RTSP_H */