#include <stdint.h>
#include "avformat.h"
#include "rtspcodes.h"
#include "rtpdec.h"
#include "network.h"
#include "httpauth.h"
Go to the source code of this file.
Data Structures | |
struct | RTSPTransportField |
This describes a single item in the "Transport:" line of one stream as negotiated by the SETUP RTSP command. More... | |
struct | RTSPMessageHeader |
This describes the server response to each RTSP command. More... | |
struct | RTSPState |
Private data for the RTSP demuxer. More... | |
struct | RTSPStream |
Describes a single stream, as identified by a single m= line block in the SDP content. More... | |
Defines | |
#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 |
Enumerations | |
enum | RTSPLowerTransport { RTSP_LOWER_TRANSPORT_UDP = 0, RTSP_LOWER_TRANSPORT_TCP = 1, RTSP_LOWER_TRANSPORT_UDP_MULTICAST = 2, RTSP_LOWER_TRANSPORT_NB } |
Network layer over which RTP/etc packet data will be transported. More... | |
enum | RTSPTransport { RTSP_TRANSPORT_RTP, RTSP_TRANSPORT_RDT, RTSP_TRANSPORT_NB } |
Packet profile of the data that we will be receiving. More... | |
enum | RTSPClientState { RTSP_STATE_IDLE, RTSP_STATE_STREAMING, RTSP_STATE_PAUSED, RTSP_STATE_SEEKING } |
Client state, i.e. More... | |
enum | RTSPServerType { RTSP_SERVER_RTP, RTSP_SERVER_REAL, RTSP_SERVER_WMS, RTSP_SERVER_NB } |
Identifies particular servers that require special handling, such as standards-incompliant "Transport:" lines in the SETUP request. More... | |
Functions | |
void | ff_rtsp_parse_line (RTSPMessageHeader *reply, const char *buf, HTTPAuthState *auth_state) |
void | ff_rtsp_send_cmd_with_content_async (AVFormatContext *s, const char *method, const char *url, const char *headers, const unsigned char *send_content, int send_content_length) |
Send a command to the RTSP server without waiting for the reply. | |
void | ff_rtsp_send_cmd_async (AVFormatContext *s, const char *method, const char *url, const char *headers) |
Send a command to the RTSP server without waiting for the reply. | |
void | ff_rtsp_send_cmd_with_content (AVFormatContext *s, const char *method, const char *url, const char *headers, RTSPMessageHeader *reply, unsigned char **content_ptr, const unsigned char *send_content, int send_content_length) |
Send a command to the RTSP server and wait for the reply. | |
void | ff_rtsp_send_cmd (AVFormatContext *s, const char *method, const char *url, const char *headers, RTSPMessageHeader *reply, unsigned char **content_ptr) |
Send a command to the RTSP server and wait for the reply. | |
int | ff_rtsp_read_reply (AVFormatContext *s, RTSPMessageHeader *reply, unsigned char **content_ptr, int return_on_interleaved_data) |
Read a RTSP message from the server, or prepare to read data packets if we're reading data interleaved over the TCP/RTSP connection as well. | |
void | ff_rtsp_skip_packet (AVFormatContext *s) |
Skip a RTP/TCP interleaved packet. | |
int | ff_rtsp_connect (AVFormatContext *s) |
Connect to the RTSP server and set up the individual media streams. | |
void | ff_rtsp_close_streams (AVFormatContext *s) |
Close and free all streams within the RTSP (de)muxer. | |
Variables | |
int | rtsp_default_protocols |
int | rtsp_rtp_port_min |
int | rtsp_rtp_port_max |
#define RTSP_DEFAULT_AUDIO_SAMPLERATE 44100 |
#define RTSP_DEFAULT_NB_AUDIO_CHANNELS 2 |
#define RTSP_TCP_MAX_PACKET_SIZE 1472 |
Definition at line 54 of file rtsp.h.
Referenced by http_prepare_data(), rtp_new_av_stream(), rtsp_rtp_mux_open(), and tcp_write_packet().
enum RTSPClientState |
Client state, i.e.
whether we are currently receiving data (PLAYING) or setup-but-not-receiving (PAUSED). State can be changed in applications by calling av_read_play/pause().
enum RTSPLowerTransport |
enum RTSPServerType |
enum RTSPTransport |
void ff_rtsp_close_streams | ( | AVFormatContext * | s | ) |
Close and free all streams within the RTSP (de)muxer.
s | RTSP (de)muxer context |
Definition at line 576 of file rtsp.c.
Referenced by rtsp_write_close(), rtsp_write_header(), sdp_read_close(), and sdp_read_header().
int ff_rtsp_connect | ( | AVFormatContext * | s | ) |
Connect to the RTSP server and set up the individual media streams.
This can be used for both muxers and demuxers.
s | RTSP (de)muxer context |
Referenced by rtsp_write_header().
void ff_rtsp_parse_line | ( | RTSPMessageHeader * | reply, | |
const char * | buf, | |||
HTTPAuthState * | auth_state | |||
) |
Referenced by rtsp_parse_request().
int ff_rtsp_read_reply | ( | AVFormatContext * | s, | |
RTSPMessageHeader * | reply, | |||
unsigned char ** | content_ptr, | |||
int | return_on_interleaved_data | |||
) |
Read a RTSP message from the server, or prepare to read data packets if we're reading data interleaved over the TCP/RTSP connection as well.
s | RTSP (de)muxer context | |
reply | pointer where the RTSP message header will be stored | |
content_ptr | pointer where the RTSP message body, if any, will be stored (length is in reply) | |
return_on_interleaved_data | whether the function may return if we encounter a data marker ('$'), which precedes data packets over interleaved TCP/RTSP connections. If this is set, this function will return 1 after encountering a '$'. If it is not set, the function will skip any data packets (if they are encountered), until a reply has been fully parsed. If no more data is available without parsing a reply, it will return an error. |
Referenced by rtsp_write_packet().
void ff_rtsp_send_cmd | ( | AVFormatContext * | s, | |
const char * | method, | |||
const char * | url, | |||
const char * | headers, | |||
RTSPMessageHeader * | reply, | |||
unsigned char ** | content_ptr | |||
) |
Send a command to the RTSP server and wait for the reply.
Referenced by rtsp_write_record().
void ff_rtsp_send_cmd_async | ( | AVFormatContext * | s, | |
const char * | method, | |||
const char * | url, | |||
const char * | headers | |||
) |
Send a command to the RTSP server without waiting for the reply.
Referenced by rtsp_write_close().
void ff_rtsp_send_cmd_with_content | ( | AVFormatContext * | s, | |
const char * | method, | |||
const char * | url, | |||
const char * | headers, | |||
RTSPMessageHeader * | reply, | |||
unsigned char ** | content_ptr, | |||
const unsigned char * | send_content, | |||
int | send_content_length | |||
) |
Send a command to the RTSP server and wait for the reply.
s | RTSP (de)muxer context | |
method | the method for the request | |
url | the target url for the request | |
headers | extra header lines to include in the request | |
reply | pointer where the RTSP message header will be stored | |
content_ptr | pointer where the RTSP message body, if any, will be stored (length is in reply) | |
send_content | if non-null, the data to send as request body content | |
send_content_length | the length of the send_content data, or 0 if send_content is null |
void ff_rtsp_send_cmd_with_content_async | ( | AVFormatContext * | s, | |
const char * | method, | |||
const char * | url, | |||
const char * | headers, | |||
const unsigned char * | send_content, | |||
int | send_content_length | |||
) |
Send a command to the RTSP server without waiting for the reply.
s | RTSP (de)muxer context | |
method | the method for the request | |
url | the target url for the request | |
headers | extra header lines to include in the request | |
send_content | if non-null, the data to send as request body content | |
send_content_length | the length of the send_content data, or 0 if send_content is null |
void ff_rtsp_skip_packet | ( | AVFormatContext * | s | ) |