annotate rtsp.h @ 1960:c0289552590f libavformat

Change the vhook code to send real timestamps to the filters instead of the current time of day, which is useless, and which the filters could just as easily query for themselves. patch by Bobby Bingham, uhmmmm gmail com
author diego
date Thu, 29 Mar 2007 05:24:35 +0000
parents 342cce8cb3e4
children 5b54f43626d0
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 */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
21 #ifndef RTSP_H
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
22 #define RTSP_H
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
23
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
24 #include "rtspcodes.h"
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
25
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
26 enum RTSPProtocol {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
27 RTSP_PROTOCOL_RTP_UDP = 0,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
28 RTSP_PROTOCOL_RTP_TCP = 1,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
29 RTSP_PROTOCOL_RTP_UDP_MULTICAST = 2,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
30 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
31
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
32 #define RTSP_DEFAULT_PORT 554
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
33 #define RTSP_MAX_TRANSPORTS 8
179
43ac45200138 suppressed RTSP abort hack - added PLAY/PAUSE
bellard
parents: 65
diff changeset
34 #define RTSP_TCP_MAX_PACKET_SIZE 1472
774
820863425158 RTP/RTSP and MPEG4-AAC audio
michael
parents: 304
diff changeset
35 #define RTSP_DEFAULT_NB_AUDIO_CHANNELS 2
820863425158 RTP/RTSP and MPEG4-AAC audio
michael
parents: 304
diff changeset
36 #define RTSP_DEFAULT_AUDIO_SAMPLERATE 44100
820863425158 RTP/RTSP and MPEG4-AAC audio
michael
parents: 304
diff changeset
37 #define RTSP_RTP_PORT_MIN 5000
820863425158 RTP/RTSP and MPEG4-AAC audio
michael
parents: 304
diff changeset
38 #define RTSP_RTP_PORT_MAX 10000
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
39
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
40 typedef struct RTSPTransportField {
1871
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
41 int interleaved_min, interleaved_max; /**< interleave ids, if TCP transport */
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
42 int port_min, port_max; /**< RTP ports */
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
43 int client_port_min, client_port_max; /**< RTP ports */
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
44 int server_port_min, server_port_max; /**< RTP ports */
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
45 int ttl; /**< ttl value */
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
46 uint32_t destination; /**< destination IP address */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
47 enum RTSPProtocol protocol;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
48 } RTSPTransportField;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
49
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
50 typedef struct RTSPHeader {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
51 int content_length;
1871
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
52 enum RTSPStatusCode status_code; /**< response code from server */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
53 int nb_transports;
1871
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
54 /** in AV_TIME_BASE unit, AV_NOPTS_VALUE if not used */
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 774
diff changeset
55 int64_t range_start, range_end;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
56 RTSPTransportField transports[RTSP_MAX_TRANSPORTS];
1871
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
57 int seq; /**< sequence number */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
58 char session_id[512];
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
59 } RTSPHeader;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
60
1871
50ad5902d797 Doxygenize comments in rtsp.h
takis
parents: 1870
diff changeset
61 /** the callback can be used to extend the connection setup/teardown step */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
62 enum RTSPCallbackAction {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
63 RTSP_ACTION_SERVER_SETUP,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
64 RTSP_ACTION_SERVER_TEARDOWN,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
65 RTSP_ACTION_CLIENT_SETUP,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
66 RTSP_ACTION_CLIENT_TEARDOWN,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
67 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
68
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
69 typedef struct RTSPActionServerSetup {
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 0
diff changeset
70 uint32_t ipaddr;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
71 char transport_option[512];
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
72 } RTSPActionServerSetup;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
73
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 774
diff changeset
74 typedef int FFRTSPCallback(enum RTSPCallbackAction action,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
75 const char *session_id,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
76 char *buf, int buf_size,
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
77 void *arg);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
78
1873
342cce8cb3e4 Make rtsp_set_callback() comments available to Doxygen
takis
parents: 1872
diff changeset
79 /** useful for modules: set RTSP callback function */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
80 void rtsp_set_callback(FFRTSPCallback *rtsp_cb);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
81
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
82 int rtsp_init(void);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
83 void rtsp_parse_line(RTSPHeader *reply, const char *buf);
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
84
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
85 extern int rtsp_default_protocols;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
86 extern int rtsp_rtp_port_min;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
87 extern int rtsp_rtp_port_max;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
88 extern FFRTSPCallback *ff_rtsp_callback;
1167
d89d7ef290da give AVInput/OutputFormat structs consistent names
mru
parents: 896
diff changeset
89 extern AVInputFormat rtsp_demuxer;
179
43ac45200138 suppressed RTSP abort hack - added PLAY/PAUSE
bellard
parents: 65
diff changeset
90
43ac45200138 suppressed RTSP abort hack - added PLAY/PAUSE
bellard
parents: 65
diff changeset
91 int rtsp_pause(AVFormatContext *s);
43ac45200138 suppressed RTSP abort hack - added PLAY/PAUSE
bellard
parents: 65
diff changeset
92 int rtsp_resume(AVFormatContext *s);
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
93
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
94 #endif /* RTSP_H */