annotate stream/stream_netstream.h @ 30811:50e0f6942e43

Implement Win32 mutexes. Implement Win32 mutexes; they used to just be mapped on top of events, which is not the same thing at all. The implementation is pretty much the obvious one, similar to the current critical section implementation and the semaphore implementation; a single lock count protected by a pthread mutex, and an event lockers can sleep on to know when the mutex is available. Also make CreateMutexA and ReleaseMutex available even if QuickTime codecs support is not configured.
author sesse
date Sat, 06 Mar 2010 10:13:37 +0000
parents 9fc9d1e788aa
children b01f807eb183
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27745
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
1 /*
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
2 * Common stuff for netstream
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
3 * Packets and so on are defined here along with a few helpers
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
4 * wich are used by both the client and the server
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
5 *
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
6 * Data is always low endian
30426
ce0122361a39 Add license header to all files missing it in the stream subdirectory.
diego
parents: 30165
diff changeset
7 *
ce0122361a39 Add license header to all files missing it in the stream subdirectory.
diego
parents: 30165
diff changeset
8 * This file is part of MPlayer.
ce0122361a39 Add license header to all files missing it in the stream subdirectory.
diego
parents: 30165
diff changeset
9 *
ce0122361a39 Add license header to all files missing it in the stream subdirectory.
diego
parents: 30165
diff changeset
10 * MPlayer is free software; you can redistribute it and/or modify
ce0122361a39 Add license header to all files missing it in the stream subdirectory.
diego
parents: 30165
diff changeset
11 * it under the terms of the GNU General Public License as published by
ce0122361a39 Add license header to all files missing it in the stream subdirectory.
diego
parents: 30165
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
ce0122361a39 Add license header to all files missing it in the stream subdirectory.
diego
parents: 30165
diff changeset
13 * (at your option) any later version.
ce0122361a39 Add license header to all files missing it in the stream subdirectory.
diego
parents: 30165
diff changeset
14 *
ce0122361a39 Add license header to all files missing it in the stream subdirectory.
diego
parents: 30165
diff changeset
15 * MPlayer is distributed in the hope that it will be useful,
ce0122361a39 Add license header to all files missing it in the stream subdirectory.
diego
parents: 30165
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
ce0122361a39 Add license header to all files missing it in the stream subdirectory.
diego
parents: 30165
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ce0122361a39 Add license header to all files missing it in the stream subdirectory.
diego
parents: 30165
diff changeset
18 * GNU General Public License for more details.
ce0122361a39 Add license header to all files missing it in the stream subdirectory.
diego
parents: 30165
diff changeset
19 *
ce0122361a39 Add license header to all files missing it in the stream subdirectory.
diego
parents: 30165
diff changeset
20 * You should have received a copy of the GNU General Public License along
ce0122361a39 Add license header to all files missing it in the stream subdirectory.
diego
parents: 30165
diff changeset
21 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
ce0122361a39 Add license header to all files missing it in the stream subdirectory.
diego
parents: 30165
diff changeset
22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
27745
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
23 */
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
24
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
25 #ifndef MPLAYER_NETSTREAM_H
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
26 #define MPLAYER_NETSTREAM_H
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
27
30165
b4cbeff5153e Add a few missing header #includes and #defines.
diego
parents: 29263
diff changeset
28 #include "config.h"
27745
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
29 #include <stdint.h>
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
30 #include <stdlib.h>
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
31 #include <string.h>
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
32 #include <errno.h>
28402
c884d17bd005 Convert HAVE_WINSOCK2_H into a 0/1 definition.
diego
parents: 27745
diff changeset
33 #if !HAVE_WINSOCK2_H
27745
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
34 #include <sys/socket.h>
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
35 #endif
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
36 #include "mp_msg.h"
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
37 #include "mpbswap.h"
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
38
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
39 typedef struct mp_net_stream_packet_st {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
40 uint16_t len;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
41 uint8_t cmd;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
42 char data[0];
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
43 } __attribute__ ((packed)) mp_net_stream_packet_t;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
44
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
45 #define PACKET_MAX_SIZE 4096
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
46
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
47 // Commands sent by the client
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
48 #define NET_STREAM_OPEN 0
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
49 // data is the url
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
50 #define NET_STREAM_FILL_BUFFER 1
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
51 // data is an uint16 wich is the max len of the data to return
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
52 #define NET_STREAM_SEEK 3
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
53 // data is an uint64 wich the pos where to seek
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
54 #define NET_STREAM_CLOSE 4
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
55 // no data
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
56 #define NET_STREAM_RESET 5
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
57 // no data
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
58
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
59 // Server response
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
60 #define NET_STREAM_OK 128
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
61 // Data returned if open is successful
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
62 typedef struct mp_net_stream_opened_st {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
63 uint32_t file_format;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
64 uint32_t flags;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
65 uint32_t sector_size;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
66 uint64_t start_pos;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
67 uint64_t end_pos;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
68 } __attribute__ ((packed)) mp_net_stream_opened_t;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
69 // FILL_BUFFER return the data
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
70 // CLOSE return nothing
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
71 #define NET_STREAM_ERROR 129
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
72 // Data is the error message (if any ;)
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
73
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
74 static int net_read(int fd, char* buf, int len) {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
75 int r = 0;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
76 while(len) {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
77 r = recv(fd,buf,len,0);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
78 if(r <= 0) {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
79 if(errno == EINTR) continue;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
80 if(r < 0)
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
81 mp_msg(MSGT_NETST,MSGL_ERR,"Read failed: %s\n",strerror(errno));
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
82 return 0;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
83 }
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
84 len -= r;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
85 buf += r;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
86 }
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
87 return 1;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
88 }
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
89
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
90 static mp_net_stream_packet_t* read_packet(int fd) {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
91 uint16_t len;
30702
9fc9d1e788aa Do not cast the results of malloc/calloc/realloc.
diego
parents: 30426
diff changeset
92 mp_net_stream_packet_t* pack = malloc(sizeof(mp_net_stream_packet_t));
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28402
diff changeset
93
27745
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
94 if(!net_read(fd,(char*)pack,sizeof(mp_net_stream_packet_t))) {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
95 free(pack);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
96 return NULL;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
97 }
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
98 pack->len = le2me_16(pack->len);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
99
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
100 if(pack->len < sizeof(mp_net_stream_packet_t)) {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
101 mp_msg(MSGT_NETST,MSGL_WARN,"Got invalid packet (too small: %d)\n",pack->len);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
102 free(pack);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
103 return NULL;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
104 }
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
105 if(pack->len > PACKET_MAX_SIZE) {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
106 mp_msg(MSGT_NETST,MSGL_WARN,"Got invalid packet (too big: %d)\n",pack->len);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
107 free(pack);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
108 return NULL;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
109 }
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
110 len = pack->len;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
111 if(len > sizeof(mp_net_stream_packet_t)) {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
112 pack = realloc(pack,len);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
113 if(!pack) {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
114 mp_msg(MSGT_NETST,MSGL_ERR,"Failed to get memory for the packet (%d bytes)\n",len);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
115 return NULL;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
116 }
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
117 if(!net_read(fd,pack->data,len - sizeof(mp_net_stream_packet_t)))
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
118 return NULL;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
119 }
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
120 // printf ("Read packet %d %d %d\n",fd,pack->cmd,pack->len);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
121 return pack;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
122 }
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
123
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
124 static int net_write(int fd, char* buf, int len) {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
125 int w;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
126 while(len) {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
127 w = send(fd,buf,len,0);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
128 if(w <= 0) {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
129 if(errno == EINTR) continue;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
130 if(w < 0)
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
131 mp_msg(MSGT_NETST,MSGL_ERR,"Write failed: %s\n",strerror(errno));
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
132 return 0;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
133 }
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
134 len -= w;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
135 buf += w;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
136 }
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
137 return 1;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
138 }
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
139
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
140 static int write_packet(int fd, uint8_t cmd,char* data,int len) {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
141 mp_net_stream_packet_t* pack = malloc(len + sizeof(mp_net_stream_packet_t));
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28402
diff changeset
142
27745
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
143 if(len > 0 && data)
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
144 memcpy(pack->data,data,len);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
145 pack->len = len + sizeof(mp_net_stream_packet_t);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
146 pack->cmd = cmd;
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28402
diff changeset
147
27745
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
148 // printf("Write packet %d %d (%p) %d\n",fd,cmd,data,len);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
149 pack->len = le2me_16(pack->len);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
150 if(net_write(fd,(char*)pack,pack->len)) {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
151 free(pack);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
152 return 1;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
153 }
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
154 free(pack);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
155 return 0;
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
156 }
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
157
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
158 static void net_stream_opened_2_me(mp_net_stream_opened_t* o) {
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
159 o->file_format = le2me_32(o->file_format);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
160 o->flags = le2me_32(o->flags);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
161 o->sector_size = le2me_32(o->sector_size);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
162 o->start_pos = le2me_64(o->start_pos);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
163 o->end_pos = le2me_64(o->end_pos);
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
164 }
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
165
a5ed200519dc Rename stream/netstream.h to stream/stream_netstream.h; netstream.h to make it
diego
parents:
diff changeset
166 #endif /* MPLAYER_NETSTREAM_H */