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 */
 | 
			
		||||
static void rtsp_close_streams(AVFormatContext *s)
 | 
			
		||||
void rtsp_close_streams(AVFormatContext *s)
 | 
			
		||||
{
 | 
			
		||||
    RTSPState *rt = s->priv_data;
 | 
			
		||||
    int i;
 | 
			
		||||
@ -879,28 +879,7 @@ static void rtsp_skip_packet(AVFormatContext *s)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 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,
 | 
			
		||||
int rtsp_read_reply(AVFormatContext *s, RTSPMessageHeader *reply,
 | 
			
		||||
                           unsigned char **content_ptr,
 | 
			
		||||
                           int return_on_interleaved_data)
 | 
			
		||||
{
 | 
			
		||||
@ -987,7 +966,7 @@ static int rtsp_read_reply(AVFormatContext *s, RTSPMessageHeader *reply,
 | 
			
		||||
    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 unsigned char *send_content,
 | 
			
		||||
                                             int send_content_length)
 | 
			
		||||
@ -1019,12 +998,12 @@ static void rtsp_send_cmd_with_content_async(AVFormatContext *s,
 | 
			
		||||
    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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void rtsp_send_cmd(AVFormatContext *s,
 | 
			
		||||
void rtsp_send_cmd(AVFormatContext *s,
 | 
			
		||||
                          const char *cmd, RTSPMessageHeader *reply,
 | 
			
		||||
                          unsigned char **content_ptr)
 | 
			
		||||
{
 | 
			
		||||
@ -1033,7 +1012,7 @@ static void rtsp_send_cmd(AVFormatContext *s,
 | 
			
		||||
    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,
 | 
			
		||||
                                       RTSPMessageHeader *reply,
 | 
			
		||||
                                       unsigned char **content_ptr,
 | 
			
		||||
@ -1397,7 +1376,7 @@ static int rtsp_setup_output_streams(AVFormatContext *s)
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int rtsp_connect(AVFormatContext *s)
 | 
			
		||||
int rtsp_connect(AVFormatContext *s)
 | 
			
		||||
{
 | 
			
		||||
    RTSPState *rt = s->priv_data;
 | 
			
		||||
    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_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 */
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user