summaryrefslogtreecommitdiffstats
path: root/stream/rtp.c
diff options
context:
space:
mode:
authorben <ben@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-08-04 19:31:53 +0000
committerben <ben@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-08-04 19:31:53 +0000
commit74f76ea788d9af5a37d668de0e53afe13a305aaa (patch)
tree5bd711c9cec8323ced1b7e850ce057c5d19667df /stream/rtp.c
parentae8b32f6c1c52770eb60392daa13eda36210c80f (diff)
downloadmpv-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.c111
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;