FFmpeg
4.0
|
Private data for the RTSP demuxer. More...
#include <libavformat/rtsp.h>
Data Fields | |
const AVClass * | class |
Class for private options. More... | |
URLContext * | rtsp_hd |
int | nb_rtsp_streams |
number of items in the 'rtsp_streams' variable More... | |
struct RTSPStream ** | rtsp_streams |
streams in this session More... | |
enum RTSPClientState | state |
indicator of whether we are currently receiving data from the server. More... | |
int64_t | seek_timestamp |
the seek value requested when calling av_seek_frame(). More... | |
int | seq |
RTSP command sequence number. More... | |
char | session_id [512] |
copy of RTSPMessageHeader->session_id, i.e. More... | |
int | timeout |
copy of RTSPMessageHeader->timeout, i.e. More... | |
int64_t | last_cmd_time |
timestamp of the last RTSP command that we sent to the RTSP server. More... | |
enum RTSPTransport | transport |
the negotiated data/packet transport protocol; e.g. More... | |
enum RTSPLowerTransport | lower_transport |
the negotiated network layer transport protocol; e.g. More... | |
enum RTSPServerType | server_type |
brand of server that we're talking to; e.g. More... | |
char | real_challenge [64] |
the "RealChallenge1:" field from the server More... | |
char | auth [128] |
plaintext authorization line (username:password) More... | |
HTTPAuthState | auth_state |
authentication state More... | |
char | last_reply [2048] |
The last reply of the server to a RTSP command. More... | |
void * | cur_transport_priv |
RTSPStream->transport_priv of the last stream that we read a packet from. More... | |
char | control_uri [1024] |
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. More... | |
URLContext * | rtsp_hd_out |
Additional output handle, used when input and output are done separately, eg for HTTP tunneling. More... | |
enum RTSPControlTransport | control_transport |
RTSP transport mode, such as plain or tunneled. More... | |
int | nb_byes |
uint8_t * | recvbuf |
Reusable buffer for receiving packets. More... | |
int | lower_transport_mask |
A mask with all requested transport methods. More... | |
uint64_t | packets |
The number of returned packets. More... | |
struct pollfd * | p |
Polling array for udp. More... | |
int | max_p |
int | get_parameter_supported |
Whether the server supports the GET_PARAMETER method. More... | |
int | initial_pause |
Do not begin to play the stream immediately. More... | |
int | rtp_muxer_flags |
Option flags for the chained RTP muxer. More... | |
int | accept_dynamic_rate |
Whether the server accepts the x-Dynamic-Rate header. More... | |
int | rtsp_flags |
Various option flags for the RTSP muxer/demuxer. More... | |
int | media_type_mask |
Mask of all requested media types. More... | |
int | rtp_port_min |
Minimum and maximum local UDP ports. More... | |
int | rtp_port_max |
int | initial_timeout |
Timeout to wait for incoming connections. More... | |
int | stimeout |
timeout of socket i/o operations. More... | |
int | reordering_queue_size |
Size of RTP packet reordering queue. More... | |
char * | user_agent |
User-Agent string. More... | |
char | default_lang [4] |
int | buffer_size |
int | need_subscription |
The following are used for Real stream selection. More... | |
enum AVDiscard * | real_setup_cache |
stream setup during the last frame read. More... | |
enum AVDiscard * | real_setup |
current stream setup. More... | |
char | last_subscription [1024] |
the last value of the "SET_PARAMETER Subscribe:" RTSP command. More... | |
AVFormatContext * | asf_ctx |
The following are used for RTP/ASF streams. More... | |
uint64_t | asf_pb_pos |
cache for position of the asf demuxer, since we load a new data packet in the bytecontext for each incoming RTSP packet. More... | |
struct MpegTSContext * | ts |
The following are used for parsing raw mpegts in udp. More... | |
int | recvbuf_pos |
int | recvbuf_len |
Private data for the RTSP demuxer.
URLContext* RTSPState::rtsp_hd |
Definition at line 220 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), ff_rtsp_tcp_read_packet(), read_line(), rtsp_listen(), rtsp_read_announce(), and rtsp_write_packet().
int RTSPState::nb_rtsp_streams |
number of items in the 'rtsp_streams' variable
Definition at line 223 of file rtsp.h.
Referenced by ff_rtsp_close_streams(), ff_rtsp_open_transport_ctx(), ff_rtsp_setup_output_streams(), ff_rtsp_tcp_read_packet(), ff_rtsp_undo_setup(), get_sockaddr(), rtsp_read_packet(), rtsp_read_play(), rtsp_read_setup(), and rtsp_write_packet().
struct RTSPStream** RTSPState::rtsp_streams |
streams in this session
Definition at line 225 of file rtsp.h.
Referenced by ff_rtsp_close_streams(), ff_rtsp_open_transport_ctx(), ff_rtsp_setup_output_streams(), ff_rtsp_tcp_read_packet(), ff_rtsp_undo_setup(), get_sockaddr(), rtsp_read_play(), rtsp_read_setup(), and rtsp_write_packet().
enum RTSPClientState RTSPState::state |
indicator of whether we are currently receiving data from the server.
Basically this isn't more than a simple cache of the last PLAY/PAUSE command sent to the server, to make sure we don't send 2x the same unexpectedly or commands in the wrong state.
Definition at line 231 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), ff_rtsp_parse_streaming_commands(), ff_rtsp_tcp_read_packet(), parse_command_line(), rtsp_listen(), rtsp_read_packet(), rtsp_read_pause(), rtsp_read_play(), rtsp_read_record(), rtsp_read_seek(), rtsp_read_setup(), rtsp_write_packet(), and rtsp_write_record().
int64_t RTSPState::seek_timestamp |
the seek value requested when calling av_seek_frame().
This value is subsequently used as part of the "Range" parameter when emitting the RTSP PLAY command. If we are currently playing, this command is called instantly. If we are currently paused, this command is called whenever we resume playback. Either way, the value is only used once, see rtsp_read_play() and rtsp_read_seek().
Definition at line 239 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), rtsp_read_play(), and rtsp_read_seek().
int RTSPState::seq |
RTSP command sequence number.
Definition at line 241 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), ff_rtsp_parse_streaming_commands(), rtsp_read_announce(), rtsp_read_options(), rtsp_read_record(), rtsp_read_request(), and rtsp_read_setup().
char RTSPState::session_id[512] |
copy of RTSPMessageHeader->session_id, i.e.
the server-provided session identifier that the client should re-transmit in each RTSP command
Definition at line 245 of file rtsp.h.
Referenced by check_sessionid(), ff_rtsp_open_transport_ctx(), rtsp_read_packet(), rtsp_read_record(), rtsp_read_request(), and rtsp_read_setup().
int RTSPState::timeout |
copy of RTSPMessageHeader->timeout, i.e.
the time (in seconds) that the server will go without traffic on the RTSP/TCP line before it closes the connection.
Definition at line 250 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), and rtsp_read_packet().
int64_t RTSPState::last_cmd_time |
timestamp of the last RTSP command that we sent to the RTSP server.
This is used to calculate when to send dummy commands to keep the connection alive, in conjunction with timeout.
Definition at line 255 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), and rtsp_read_packet().
enum RTSPTransport RTSPState::transport |
the negotiated data/packet transport protocol; e.g.
RTP or RDT
Definition at line 258 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), ff_rtsp_tcp_read_packet(), ff_rtsp_undo_setup(), get_sockaddr(), and rtsp_read_play().
enum RTSPLowerTransport RTSPState::lower_transport |
the negotiated network layer transport protocol; e.g.
TCP or UDP uni-/multicast
Definition at line 262 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), ff_rtsp_undo_setup(), rtsp_read_packet(), rtsp_read_play(), rtsp_read_setup(), and rtsp_write_packet().
enum RTSPServerType RTSPState::server_type |
brand of server that we're talking to; e.g.
WMS, REAL or other. Detected based on the value of RTSPMessageHeader->server or the presence of RTSPMessageHeader->real_challenge
Definition at line 267 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), ff_rtsp_setup_input_streams(), get_sockaddr(), rtsp_read_packet(), rtsp_read_pause(), and rtsp_read_play().
char RTSPState::real_challenge[64] |
the "RealChallenge1:" field from the server
Definition at line 270 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), and resetup_tcp().
char RTSPState::auth[128] |
plaintext authorization line (username:password)
Definition at line 273 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx().
HTTPAuthState RTSPState::auth_state |
authentication state
Definition at line 276 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), and rtsp_read_packet().
char RTSPState::last_reply[2048] |
The last reply of the server to a RTSP command.
Definition at line 279 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx().
void* RTSPState::cur_transport_priv |
RTSPStream->transport_priv of the last stream that we read a packet from.
Definition at line 283 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx().
int RTSPState::need_subscription |
The following are used for Real stream selection.
whether we need to send a "SET_PARAMETER Subscribe:" command
Definition at line 288 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), rtsp_read_packet(), rtsp_read_pause(), and rtsp_read_play().
enum AVDiscard* RTSPState::real_setup_cache |
stream setup during the last frame read.
This is used to detect if we need to subscribe or unsubscribe to any new streams.
Definition at line 292 of file rtsp.h.
Referenced by rtsp_read_close(), rtsp_read_header(), and rtsp_read_packet().
enum AVDiscard* RTSPState::real_setup |
current stream setup.
This is a temporary buffer used to compare current setup to previous frame setup.
Definition at line 296 of file rtsp.h.
Referenced by rtsp_read_close(), rtsp_read_header(), and rtsp_read_packet().
char RTSPState::last_subscription[1024] |
the last value of the "SET_PARAMETER Subscribe:" RTSP command.
this is used to send the same "Unsubscribe:" if stream setup changed, before sending a new "Subscribe:" command.
Definition at line 301 of file rtsp.h.
Referenced by rtsp_read_packet().
AVFormatContext* RTSPState::asf_ctx |
The following are used for RTP/ASF streams.
ASF demuxer context for the embedded ASF stream from WMS servers
Definition at line 307 of file rtsp.h.
Referenced by asfrtp_parse_packet(), asfrtp_parse_sdp_line(), ff_rtsp_close_streams(), and ff_wms_parse_sdp_a_line().
uint64_t RTSPState::asf_pb_pos |
cache for position of the asf demuxer, since we load a new data packet in the bytecontext for each incoming RTSP packet.
Definition at line 311 of file rtsp.h.
Referenced by asfrtp_parse_packet(), and ff_wms_parse_sdp_a_line().
char RTSPState::control_uri[1024] |
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.
Definition at line 317 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), ff_rtsp_setup_input_streams(), ff_rtsp_setup_output_streams(), get_sockaddr(), parse_command_line(), rtsp_listen(), rtsp_read_close(), rtsp_read_packet(), rtsp_read_pause(), rtsp_read_play(), rtsp_write_close(), and rtsp_write_record().
struct MpegTSContext* RTSPState::ts |
The following are used for parsing raw mpegts in udp.
Definition at line 321 of file rtsp.h.
Referenced by ff_rtsp_close_streams(), ff_rtsp_open_transport_ctx(), and get_sockaddr().
int RTSPState::recvbuf_pos |
Definition at line 322 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx().
int RTSPState::recvbuf_len |
Definition at line 323 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx().
URLContext* RTSPState::rtsp_hd_out |
Additional output handle, used when input and output are done separately, eg for HTTP tunneling.
Definition at line 328 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), ff_rtsp_tcp_write_packet(), rtsp_listen(), and rtsp_send_reply().
enum RTSPControlTransport RTSPState::control_transport |
RTSP transport mode, such as plain or tunneled.
Definition at line 331 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx().
int RTSPState::nb_byes |
Definition at line 336 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), and rtsp_read_play().
uint8_t* RTSPState::recvbuf |
Reusable buffer for receiving packets.
Definition at line 339 of file rtsp.h.
Referenced by ff_rtsp_close_streams(), and ff_rtsp_open_transport_ctx().
int RTSPState::lower_transport_mask |
A mask with all requested transport methods.
Definition at line 344 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), and rtsp_read_packet().
uint64_t RTSPState::packets |
The number of returned packets.
Definition at line 349 of file rtsp.h.
Referenced by rtsp_read_packet().
struct pollfd* RTSPState::p |
Polling array for udp.
Definition at line 354 of file rtsp.h.
Referenced by ff_rtsp_close_streams(), and ff_rtsp_open_transport_ctx().
int RTSPState::max_p |
Definition at line 355 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx().
int RTSPState::get_parameter_supported |
Whether the server supports the GET_PARAMETER method.
Definition at line 360 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), and rtsp_read_packet().
int RTSPState::initial_pause |
Do not begin to play the stream immediately.
Definition at line 365 of file rtsp.h.
Referenced by rtsp_read_header().
int RTSPState::rtp_muxer_flags |
int RTSPState::accept_dynamic_rate |
Whether the server accepts the x-Dynamic-Rate header.
Definition at line 373 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx().
int RTSPState::rtsp_flags |
Various option flags for the RTSP muxer/demuxer.
Definition at line 378 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), rtsp_read_close(), rtsp_read_header(), and rtsp_read_packet().
int RTSPState::media_type_mask |
Mask of all requested media types.
Definition at line 383 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), and get_sockaddr().
int RTSPState::rtp_port_min |
Minimum and maximum local UDP ports.
Definition at line 388 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), and rtsp_read_setup().
int RTSPState::rtp_port_max |
Definition at line 388 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx(), and rtsp_read_setup().
int RTSPState::initial_timeout |
Timeout to wait for incoming connections.
Definition at line 393 of file rtsp.h.
Referenced by rtsp_listen(), and rtsp_read_header().
int RTSPState::stimeout |
timeout of socket i/o operations.
Definition at line 398 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx().
int RTSPState::reordering_queue_size |
Size of RTP packet reordering queue.
Definition at line 403 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx().
char* RTSPState::user_agent |
User-Agent string.
Definition at line 408 of file rtsp.h.
Referenced by ff_rtsp_open_transport_ctx().
char RTSPState::default_lang[4] |
Definition at line 410 of file rtsp.h.
Referenced by get_sockaddr().
int RTSPState::buffer_size |
Definition at line 411 of file rtsp.h.
Referenced by map_to_opts(), and rtsp_read_setup().