diff options
author | ben <ben@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-08-04 19:31:53 +0000 |
---|---|---|
committer | ben <ben@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-08-04 19:31:53 +0000 |
commit | 74f76ea788d9af5a37d668de0e53afe13a305aaa (patch) | |
tree | 5bd711c9cec8323ced1b7e850ce057c5d19667df /stream/rtp.c | |
parent | ae8b32f6c1c52770eb60392daa13eda36210c80f (diff) | |
download | mpv-74f76ea788d9af5a37d668de0e53afe13a305aaa.tar.bz2 mpv-74f76ea788d9af5a37d668de0e53afe13a305aaa.tar.xz |
removed udp socket creation code from rtp stack to a new dedicated udp helper file
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19324 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'stream/rtp.c')
-rw-r--r-- | stream/rtp.c | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/stream/rtp.c b/stream/rtp.c index 507fc086d2..03073f2651 100644 --- a/stream/rtp.c +++ b/stream/rtp.c @@ -198,117 +198,6 @@ int read_rtp_from_server(int fd, char *buffer, int length) { return(length); } -// Start listening on a UDP port. If multicast, join the group. -int rtp_open_socket( URL_t *url ) { - int socket_server_fd, rxsockbufsz; - int err, err_len; - fd_set set; - struct sockaddr_in server_address; - struct ip_mreq mcast; - struct timeval tv; - struct hostent *hp; - - mp_msg(MSGT_NETWORK,MSGL_V,"Listening for traffic on %s:%d ...\n", url->hostname, url->port ); - - socket_server_fd = socket(AF_INET, SOCK_DGRAM, 0); -// fcntl( socket_server_fd, F_SETFL, fcntl(socket_server_fd, F_GETFL) | O_NONBLOCK ); - if( socket_server_fd==-1 ) { - mp_msg(MSGT_NETWORK,MSGL_ERR,"Failed to create socket\n"); - return -1; - } - - if( isalpha(url->hostname[0]) ) { -#ifndef HAVE_WINSOCK2 - hp =(struct hostent*)gethostbyname( url->hostname ); - if( hp==NULL ) { - mp_msg(MSGT_NETWORK,MSGL_ERR,"Counldn't resolve name: %s\n", url->hostname); - goto err_out; - } - memcpy( (void*)&server_address.sin_addr.s_addr, (void*)hp->h_addr_list[0], hp->h_length ); -#else - server_address.sin_addr.s_addr = htonl(INADDR_ANY); -#endif - } else { -#ifndef HAVE_WINSOCK2 -#ifdef USE_ATON - inet_aton(url->hostname, &server_address.sin_addr); -#else - inet_pton(AF_INET, url->hostname, &server_address.sin_addr); -#endif -#else - server_address.sin_addr.s_addr = htonl(INADDR_ANY); -#endif - } - server_address.sin_family=AF_INET; - server_address.sin_port=htons(url->port); - - if( bind( socket_server_fd, (struct sockaddr*)&server_address, sizeof(server_address) )==-1 ) { -#ifndef HAVE_WINSOCK2 - if( errno!=EINPROGRESS ) { -#else - if( WSAGetLastError() != WSAEINPROGRESS ) { -#endif - mp_msg(MSGT_NETWORK,MSGL_ERR,"Failed to connect to server\n"); - goto err_out; - } - } - -#ifdef HAVE_WINSOCK2 - if (isalpha(url->hostname[0])) { - hp =(struct hostent*)gethostbyname( url->hostname ); - if( hp==NULL ) { - mp_msg(MSGT_NETWORK,MSGL_ERR,"Counldn't resolve name: %s\n", url->hostname); - goto err_out; - } - memcpy( (void*)&server_address.sin_addr.s_addr, (void*)hp->h_addr, hp->h_length ); - } else { - unsigned int addr = inet_addr(url->hostname); - memcpy( (void*)&server_address.sin_addr, (void*)&addr, sizeof(addr) ); - } -#endif - - // Increase the socket rx buffer size to maximum -- this is UDP - rxsockbufsz = 240 * 1024; - if( setsockopt( socket_server_fd, SOL_SOCKET, SO_RCVBUF, &rxsockbufsz, sizeof(rxsockbufsz))) { - mp_msg(MSGT_NETWORK,MSGL_ERR,"Couldn't set receive socket buffer size\n"); - } - - if((ntohl(server_address.sin_addr.s_addr) >> 28) == 0xe) { - mcast.imr_multiaddr.s_addr = server_address.sin_addr.s_addr; - //mcast.imr_interface.s_addr = inet_addr("10.1.1.2"); - mcast.imr_interface.s_addr = 0; - if( setsockopt( socket_server_fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mcast, sizeof(mcast))) { - mp_msg(MSGT_NETWORK,MSGL_ERR,"IP_ADD_MEMBERSHIP failed (do you have multicasting enabled in your kernel?)\n"); - goto err_out; - } - } - - tv.tv_sec = 0; - tv.tv_usec = (1 * 1000000); // 1 second timeout - FD_ZERO( &set ); - FD_SET( socket_server_fd, &set ); - err = select(socket_server_fd+1, &set, NULL, NULL, &tv); - if (err < 0) { - mp_msg(MSGT_NETWORK, MSGL_FATAL, "Select failed: %s\n", strerror(errno)); - goto err_out; - } - if (err == 0) { - mp_msg(MSGT_NETWORK,MSGL_ERR,"Timeout! No data from host %s\n", url->hostname ); - goto err_out; - } - err_len = sizeof( err ); - getsockopt( socket_server_fd, SOL_SOCKET, SO_ERROR, &err, &err_len ); - if( err ) { - mp_msg(MSGT_NETWORK,MSGL_DBG2,"Socket error: %d\n", err ); - goto err_out; - } - return socket_server_fd; - -err_out: - closesocket(socket_server_fd); - return -1; -} - static int getrtp2(int fd, struct rtpheader *rh, char** data, int* lengthData) { static char buf[1600]; unsigned int intP; |