Mercurial > mplayer.hg
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 |
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 | 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 | 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 | 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 */ |