⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtsp_private.h

📁 嵌入式系统中c程序实现了rtsp协议的基本内容
💻 H
字号:
/*
 * The contents of this file are subject to the Mozilla Public
 * License Version 1.1 (the "License"); you may not use this file
 * except in compliance with the License. You may obtain a copy of
 * the License at http://www.mozilla.org/MPL/
 * 
 * Software distributed under the License is distributed on an "AS
 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
 * implied. See the License for the specific language governing
 * rights and limitations under the License.
 * 
 * The Original Code is MPEG4IP.
 * 
 * The Initial Developer of the Original Code is Cisco Systems Inc.
 * Portions created by Cisco Systems Inc. are
 * Copyright (C) Cisco Systems Inc. 2000, 2001.  All Rights Reserved.
 * 
 * Contributor(s): 
 *              Bill May        wmay@cisco.com
 */

//#include "stddefs.h"
/*#if ((defined ST_7109 || defined ST_7100 )&& defined ST_OSLINUX)
#include "compat.h"*/
#ifndef __PRIVATE__H__
#define __PRIVATE__H__
#include <stdio.h>
 #include <string.h>
#include <stdarg.h>

//#include <netinet/in.h>
//#include <sys/socket.h>
//#include<arpa/inet.h>
//#include <netdb.h>
#include"rtsp_client.h"
#define HAVE_POLL
//#define HAVE_IPv6
#define closesocket close



#ifndef TRUE
#define TRUE 1
#define FALSE 0
#endif

#define AF_INET	2
#define SOCK_STREAM 1

#define POLLIN	1
#define POLLPRI 2

#define RECV_BUFF_DEFAULT_LEN 2048


/* Common unsigned types */
#ifndef DEFINED_U8
#define DEFINED_U8
typedef unsigned char  U8;
#endif

#ifndef DEFINED_U16
#define DEFINED_U16
typedef unsigned short U16;
#endif

#ifndef DEFINED_U32
#define DEFINED_U32
typedef unsigned int   U32;
#endif

/* Common signed types */
#ifndef DEFINED_S8
#define DEFINED_S8
typedef signed char  S8;
#endif

#ifndef DEFINED_S16
#define DEFINED_S16
typedef signed short S16;
#endif

#ifndef DEFINED_S32
#define DEFINED_S32
typedef signed int   S32;
#endif
/*
 * Some useful macros.
 */
#define ADV_SPACE(a) {while (isspace(*(a)) && (*(a) != '\0'))(a)++;}
#define CHECK_AND_FREE(a,b,c) if ((a) != NULL) { Rtsp_Free(a,b,c); (a) = NULL;}

struct rtsp_client_private;
typedef struct rtsp_session_ {
  struct rtsp_session_ *next;
  struct rtsp_client_private *parent;
  char *session;
  char *url;
}rtsp_session_t;
  typedef struct in_addr
  {
  	U32 s_addr;
  }server_addr;
 struct	hostent {
	char	*h_name;	/* official name of host */
	char	**h_aliases;	/* alias list */
	int	h_addrtype;	/* host address type */
	int	h_length;	/* length of address */
	char	**h_addr_list;	/* list of addresses from name server */
#define	h_addr	h_addr_list[0]	;/* address, for backward compatiblity */
};

struct pollfd 
{
	int fd; 
	short events;  
	short revents;
};

 struct sockaddr_in {
  U8 sin_len;
  U8 sin_family;
  U16 sin_port;
  struct in_addr sin_addr;
  char sin_zero[8];
};
 
struct addrinfo;
typedef struct rtsp_client_private{

  char *orig_url;
  char *url;
  char *server_name;
  uint16_t redirect_count;
  int useTCP;
 struct in_addr server_addr;
  struct addrinfo *addr_info;
  uint16_t port;
#ifndef _WIN32
  int server_socket;
#else
  int server_socket;
#endif
  int recv_timeout;
  uint32_t next_cseq;
  char *cookie;
  rtsp_decode_t *decode_response;
  char *session;
   rtsp_session_t *session_list;
  uint32_t m_buffer_len, m_offset_on;
  char m_resp_buffer[RECV_BUFF_DEFAULT_LEN + 1];

}rtsp_client_t;
struct sockaddr {
  U8 sa_len;
  U8 sa_family;
  char sa_data[14];
};

#ifndef socklen_t
#  define socklen_t int
#endif
#define FD_SETSIZE 16
  typedef struct fd_set {
          unsigned char fd_bits [(FD_SETSIZE+7)/8];
        } fd_set;

 int lwip_accept(int s, struct sockaddr *addr, socklen_t *addrlen);
int lwip_bind(int s, struct sockaddr *name, socklen_t namelen);
int lwip_shutdown(int s, int how);
int lwip_getpeername (int s, struct sockaddr *name, socklen_t *namelen);
int lwip_getsockname (int s, struct sockaddr *name, socklen_t *namelen);
int lwip_getsockopt (int s, int level, int optname, void *optval, socklen_t *optlen);
int lwip_setsockopt (int s, int level, int optname, const void *optval, socklen_t optlen);
int lwip_close(int s);
int lwip_connect(int s, struct sockaddr *name, socklen_t namelen);
int lwip_listen(int s, int backlog);
int lwip_recv(int s, void *mem, int len, unsigned int flags);
int lwip_read(int s, void *mem, int len);
int lwip_recvfrom(int s, void *mem, int len, unsigned int flags,
      struct sockaddr *from, socklen_t *fromlen);
int lwip_send(int s, void *dataptr, int size, unsigned int flags);
int lwip_sendto(int s, void *dataptr, int size, unsigned int flags,
    struct sockaddr *to, socklen_t tolen);
int lwip_socket(int domain, int type, int protocol);
int lwip_write(int s, void *dataptr, int size);
int lwip_select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,
                struct timeval *timeout);
int lwip_ioctl(int s, long cmd, void *argp);

//yukin, 070314
int PAL_lwip_recv(int s, void *mem, int len, unsigned int flags,int mstimeout);
#define ERR_RECV_TIMEOUT 	-21	

#if 1
/*#if LWIP_COMPAT_SOCKETS		*/
#define accept(a,b,c)         lwip_accept(a,b,c)
#define bind(a,b,c)           lwip_bind(a,b,c)
#define shutdown(a,b)         lwip_shutdown(a,b)
#define close(s)              lwip_close(s)
#define connect(a,b,c)        lwip_connect(a,b,c)
#define getsockname(a,b,c)    lwip_getsockname(a,b,c)
#define getpeername(a,b,c)    lwip_getpeername(a,b,c)
#define setsockopt(a,b,c,d,e) lwip_setsockopt(a,b,c,d,e)
#define getsockopt(a,b,c,d,e) lwip_getsockopt(a,b,c,d,e)
#define listen(a,b)           lwip_listen(a,b)
#define recv(a,b,c,d)         lwip_recv(a,b,c,d)
#define read(a,b,c)           lwip_read(a,b,c)
#define recvfrom(a,b,c,d,e,f) lwip_recvfrom(a,b,c,d,e,f)
#define send(a,b,c,d)         lwip_send(a,b,c,d)
#define sendto(a,b,c,d,e,f)   lwip_sendto(a,b,c,d,e,f)
#define socket(a,b,c)         lwip_socket(a,b,c)
#define write(a,b,c)          lwip_write(a,b,c)
#define select(a,b,c,d,e)     lwip_select(a,b,c,d,e)
#define ioctlsocket(a,b,c)    lwip_ioctl(a,b,c)
#endif /* LWIP_COMPAT_SOCKETS */

extern void Rtsp_Free(void * buf,int line,char *filename);
extern void *Rtsp_Malloc(int length,int line,char *filename);
extern void  Rtsp_Printf(const char *format, ...);
extern char* strdup(const  char* buf);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -