mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-06-04 05:57:49 +02:00
Add declarations and doxygen documentation of generic rtsp support functions
to rtsp.h, and make the functions non-static Originally committed as revision 21968 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
2efc97c2fe
commit
15ba23150e
@ -572,7 +572,7 @@ static int sdp_parse(AVFormatContext *s, const char *content)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* close and free RTSP streams */
|
/* close and free RTSP streams */
|
||||||
static void rtsp_close_streams(AVFormatContext *s)
|
void rtsp_close_streams(AVFormatContext *s)
|
||||||
{
|
{
|
||||||
RTSPState *rt = s->priv_data;
|
RTSPState *rt = s->priv_data;
|
||||||
int i;
|
int i;
|
||||||
@ -879,28 +879,7 @@ static void rtsp_skip_packet(AVFormatContext *s)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
int rtsp_read_reply(AVFormatContext *s, RTSPMessageHeader *reply,
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
* @param s RTSP demuxer context
|
|
||||||
* @param reply pointer where the RTSP message header will be stored
|
|
||||||
* @param content_ptr pointer where the RTSP message body, if any, will
|
|
||||||
* be stored (length is in reply)
|
|
||||||
* @param 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.
|
|
||||||
*
|
|
||||||
* @returns 1 if a data packets is ready to be received, -1 on error,
|
|
||||||
* and 0 on success.
|
|
||||||
*/
|
|
||||||
static int rtsp_read_reply(AVFormatContext *s, RTSPMessageHeader *reply,
|
|
||||||
unsigned char **content_ptr,
|
unsigned char **content_ptr,
|
||||||
int return_on_interleaved_data)
|
int return_on_interleaved_data)
|
||||||
{
|
{
|
||||||
@ -987,7 +966,7 @@ static int rtsp_read_reply(AVFormatContext *s, RTSPMessageHeader *reply,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rtsp_send_cmd_with_content_async(AVFormatContext *s,
|
void rtsp_send_cmd_with_content_async(AVFormatContext *s,
|
||||||
const char *cmd,
|
const char *cmd,
|
||||||
const unsigned char *send_content,
|
const unsigned char *send_content,
|
||||||
int send_content_length)
|
int send_content_length)
|
||||||
@ -1019,12 +998,12 @@ static void rtsp_send_cmd_with_content_async(AVFormatContext *s,
|
|||||||
rt->last_cmd_time = av_gettime();
|
rt->last_cmd_time = av_gettime();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rtsp_send_cmd_async(AVFormatContext *s, const char *cmd)
|
void rtsp_send_cmd_async(AVFormatContext *s, const char *cmd)
|
||||||
{
|
{
|
||||||
rtsp_send_cmd_with_content_async(s, cmd, NULL, 0);
|
rtsp_send_cmd_with_content_async(s, cmd, NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rtsp_send_cmd(AVFormatContext *s,
|
void rtsp_send_cmd(AVFormatContext *s,
|
||||||
const char *cmd, RTSPMessageHeader *reply,
|
const char *cmd, RTSPMessageHeader *reply,
|
||||||
unsigned char **content_ptr)
|
unsigned char **content_ptr)
|
||||||
{
|
{
|
||||||
@ -1033,7 +1012,7 @@ static void rtsp_send_cmd(AVFormatContext *s,
|
|||||||
rtsp_read_reply(s, reply, content_ptr, 0);
|
rtsp_read_reply(s, reply, content_ptr, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rtsp_send_cmd_with_content(AVFormatContext *s,
|
void rtsp_send_cmd_with_content(AVFormatContext *s,
|
||||||
const char *cmd,
|
const char *cmd,
|
||||||
RTSPMessageHeader *reply,
|
RTSPMessageHeader *reply,
|
||||||
unsigned char **content_ptr,
|
unsigned char **content_ptr,
|
||||||
@ -1397,7 +1376,7 @@ static int rtsp_setup_output_streams(AVFormatContext *s)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rtsp_connect(AVFormatContext *s)
|
int rtsp_connect(AVFormatContext *s)
|
||||||
{
|
{
|
||||||
RTSPState *rt = s->priv_data;
|
RTSPState *rt = s->priv_data;
|
||||||
char host[1024], path[1024], tcpname[1024], cmd[2048], auth[128];
|
char host[1024], path[1024], tcpname[1024], cmd[2048], auth[128];
|
||||||
|
@ -326,4 +326,94 @@ extern int rtsp_rtp_port_max;
|
|||||||
int rtsp_pause(AVFormatContext *s);
|
int rtsp_pause(AVFormatContext *s);
|
||||||
int rtsp_resume(AVFormatContext *s);
|
int rtsp_resume(AVFormatContext *s);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send a command to the RTSP server without waiting for the reply.
|
||||||
|
*
|
||||||
|
* @param s RTSP (de)muxer context
|
||||||
|
* @param cmd the full first line of the request
|
||||||
|
* @param send_content if non-null, the data to send as request body content
|
||||||
|
* @param send_content_length the length of the send_content data, or 0 if
|
||||||
|
* send_content is null
|
||||||
|
*/
|
||||||
|
void rtsp_send_cmd_with_content_async(AVFormatContext *s,
|
||||||
|
const char *cmd,
|
||||||
|
const unsigned char *send_content,
|
||||||
|
int send_content_length);
|
||||||
|
/**
|
||||||
|
* Send a command to the RTSP server without waiting for the reply.
|
||||||
|
*
|
||||||
|
* @see rtsp_send_cmd_with_content_async
|
||||||
|
*/
|
||||||
|
void rtsp_send_cmd_async(AVFormatContext *s, const char *cmd);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send a command to the RTSP server and wait for the reply.
|
||||||
|
*
|
||||||
|
* @param s RTSP (de)muxer context
|
||||||
|
* @param cmd the full first line of the request
|
||||||
|
* @param reply pointer where the RTSP message header will be stored
|
||||||
|
* @param content_ptr pointer where the RTSP message body, if any, will
|
||||||
|
* be stored (length is in reply)
|
||||||
|
* @param send_content if non-null, the data to send as request body content
|
||||||
|
* @param send_content_length the length of the send_content data, or 0 if
|
||||||
|
* send_content is null
|
||||||
|
*/
|
||||||
|
void rtsp_send_cmd_with_content(AVFormatContext *s,
|
||||||
|
const char *cmd,
|
||||||
|
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.
|
||||||
|
*
|
||||||
|
* @see rtsp_send_cmd_with_content
|
||||||
|
*/
|
||||||
|
void rtsp_send_cmd(AVFormatContext *s, const char *cmd,
|
||||||
|
RTSPMessageHeader *reply, unsigned char **content_ptr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
* @param s RTSP (de)muxer context
|
||||||
|
* @param reply pointer where the RTSP message header will be stored
|
||||||
|
* @param content_ptr pointer where the RTSP message body, if any, will
|
||||||
|
* be stored (length is in reply)
|
||||||
|
* @param 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.
|
||||||
|
*
|
||||||
|
* @returns 1 if a data packets is ready to be received, -1 on error,
|
||||||
|
* and 0 on success.
|
||||||
|
*/
|
||||||
|
int rtsp_read_reply(AVFormatContext *s, RTSPMessageHeader *reply,
|
||||||
|
unsigned char **content_ptr,
|
||||||
|
int return_on_interleaved_data);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Connect to the RTSP server and set up the individual media streams.
|
||||||
|
* This can be used for both muxers and demuxers.
|
||||||
|
*
|
||||||
|
* @param s RTSP (de)muxer context
|
||||||
|
*
|
||||||
|
* @returns 0 on success, < 0 on error. Cleans up all allocations done
|
||||||
|
* within the function on error.
|
||||||
|
*/
|
||||||
|
int rtsp_connect(AVFormatContext *s);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Close and free all streams within the RTSP (de)muxer
|
||||||
|
*
|
||||||
|
* @param s RTSP (de)muxer context
|
||||||
|
*/
|
||||||
|
void rtsp_close_streams(AVFormatContext *s);
|
||||||
|
|
||||||
#endif /* AVFORMAT_RTSP_H */
|
#endif /* AVFORMAT_RTSP_H */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user