00001 #ifndef HEADER_CURL_RTSP_H 00002 #define HEADER_CURL_RTSP_H 00003 /*************************************************************************** 00004 * _ _ ____ _ 00005 * Project ___| | | | _ \| | 00006 * / __| | | | |_) | | 00007 * | (__| |_| | _ <| |___ 00008 * \___|\___/|_| \_\_____| 00009 * 00010 * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al. 00011 * 00012 * This software is licensed as described in the file COPYING, which 00013 * you should have received as part of this distribution. The terms 00014 * are also available at https://curl.haxx.se/docs/copyright.html. 00015 * 00016 * You may opt to use, copy, modify, merge, publish, distribute and/or sell 00017 * copies of the Software, and permit persons to whom the Software is 00018 * furnished to do so, under the terms of the COPYING file. 00019 * 00020 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 00021 * KIND, either express or implied. 00022 * 00023 ***************************************************************************/ 00024 #ifndef CURL_DISABLE_RTSP 00025 00026 extern const struct Curl_handler Curl_handler_rtsp; 00027 00028 bool Curl_rtsp_connisdead(struct connectdata *check); 00029 CURLcode Curl_rtsp_parseheader(struct connectdata *conn, char *header); 00030 00031 #else 00032 /* disabled */ 00033 #define Curl_rtsp_parseheader(x,y) CURLE_NOT_BUILT_IN 00034 #define Curl_rtsp_connisdead(x) TRUE 00035 00036 #endif /* CURL_DISABLE_RTSP */ 00037 00038 /* 00039 * RTSP Connection data 00040 * 00041 * Currently, only used for tracking incomplete RTP data reads 00042 */ 00043 struct rtsp_conn { 00044 char *rtp_buf; 00045 ssize_t rtp_bufsize; 00046 int rtp_channel; 00047 }; 00048 00049 /**************************************************************************** 00050 * RTSP unique setup 00051 ***************************************************************************/ 00052 struct RTSP { 00053 /* 00054 * http_wrapper MUST be the first element of this structure for the wrap 00055 * logic to work. In this way, we get a cheap polymorphism because 00056 * &(data->state.proto.rtsp) == &(data->state.proto.http) per the C spec 00057 * 00058 * HTTP functions can safely treat this as an HTTP struct, but RTSP aware 00059 * functions can also index into the later elements. 00060 */ 00061 struct HTTP http_wrapper; /*wrap HTTP to do the heavy lifting */ 00062 00063 long CSeq_sent; /* CSeq of this request */ 00064 long CSeq_recv; /* CSeq received */ 00065 }; 00066 00067 00068 #endif /* HEADER_CURL_RTSP_H */ 00069