annotate stream/network.h @ 24576:6704a924d4aa

According to MSDN a thread must call CoUninitialize once for each successful call it has made to CoInitialize or CoInitializeEx, including any call that returns S_FALSE. Only the CoUninitialize call corresponding to the CoInitialize or CoInitializeEx call that initialized the library can close it. patch by Gianluigi Tiesi, mplayer netfarm it
author diego
date Sun, 23 Sep 2007 20:37:33 +0000
parents 3f0d00abc073
children 3baf6a2283da
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
903
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
1 /*
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
2 * Network layer for MPlayer
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
3 * by Bertrand BAUDET <bertrand_baudet@yahoo.com>
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
4 * (C) 2001, MPlayer team.
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
5 */
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
6
23689
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 19335
diff changeset
7 #ifndef NETWORK_H
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 19335
diff changeset
8 #define NETWORK_H
903
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
9
3424
1c2fb4764745 Moved the network related include files from network.c to network.h
bertrand
parents: 3042
diff changeset
10 #include <fcntl.h>
10281
54bcbf28698a Networking support under MinGW.
diego
parents: 9890
diff changeset
11 #include <sys/time.h>
54bcbf28698a Networking support under MinGW.
diego
parents: 9890
diff changeset
12 #include <sys/types.h>
54bcbf28698a Networking support under MinGW.
diego
parents: 9890
diff changeset
13
54bcbf28698a Networking support under MinGW.
diego
parents: 9890
diff changeset
14 #include "config.h"
54bcbf28698a Networking support under MinGW.
diego
parents: 9890
diff changeset
15 #ifndef HAVE_WINSOCK2
3424
1c2fb4764745 Moved the network related include files from network.c to network.h
bertrand
parents: 3042
diff changeset
16 #include <netdb.h>
1c2fb4764745 Moved the network related include files from network.c to network.h
bertrand
parents: 3042
diff changeset
17 #include <netinet/in.h>
1c2fb4764745 Moved the network related include files from network.c to network.h
bertrand
parents: 3042
diff changeset
18 #include <sys/socket.h>
1c2fb4764745 Moved the network related include files from network.c to network.h
bertrand
parents: 3042
diff changeset
19 #include <arpa/inet.h>
10281
54bcbf28698a Networking support under MinGW.
diego
parents: 9890
diff changeset
20 #endif
3424
1c2fb4764745 Moved the network related include files from network.c to network.h
bertrand
parents: 3042
diff changeset
21
903
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
22 #include "url.h"
6455
c4078c1f9d53 Added a function prototype for reuse outside of network.c
bertrand
parents: 4729
diff changeset
23 #include "http.h"
4046
f732854e3d16 Kept the HTTP connection open after autodetect, so
bertrand
parents: 3453
diff changeset
24 #include "stream.h"
903
7f6641b1b0df Added autodetection of potential stream type.
bertrand
parents: 841
diff changeset
25
999
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
26 #define BUFFER_SIZE 2048
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
27
15585
281d155fb37f ported all network streams to the new API
nicodvb
parents: 11965
diff changeset
28 typedef struct {
19194
5949a654e2d4 marks some read-only char* inside structs as const, patch by Stefan Huehner, stefan At huehner-org
reynaldo
parents: 17566
diff changeset
29 const char *mime_type;
15585
281d155fb37f ported all network streams to the new API
nicodvb
parents: 11965
diff changeset
30 int demuxer_type;
281d155fb37f ported all network streams to the new API
nicodvb
parents: 11965
diff changeset
31 } mime_struct_t;
281d155fb37f ported all network streams to the new API
nicodvb
parents: 11965
diff changeset
32
999
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
33 typedef enum {
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
34 streaming_stopped_e,
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
35 streaming_playing_e
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
36 } streaming_status;
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
37
3042
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
38 typedef struct streaming_control {
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
39 URL_t *url;
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
40 streaming_status status;
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
41 int buffering; // boolean
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
42 unsigned int prebuffer_size;
999
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
43 char *buffer;
3042
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
44 unsigned int buffer_size;
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
45 unsigned int buffer_pos;
6641
2cdaadd779ac Added the bandwidth variable. Used to set the max download bandwidth
bertrand
parents: 6455
diff changeset
46 unsigned int bandwidth; // The downstream available
3042
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
47 int (*streaming_read)( int fd, char *buffer, int buffer_size, struct streaming_control *stream_ctrl );
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
48 int (*streaming_seek)( int fd, off_t pos, struct streaming_control *stream_ctrl );
3453
10577da4a7b1 Added a data field in the streaming_ctrl_t struct, to store any
bertrand
parents: 3428
diff changeset
49 void *data;
999
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
50 } streaming_ctrl_t;
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
51
4729
f51bd827ed1c fixed MP3 ICY detection, return detected file format for open_stream
alex
parents: 4251
diff changeset
52 //int streaming_start( stream_t *stream, int *demuxer_type, URL_t *url );
17566
f580a7755ac5 Patch by Stefan Huehner / stefan % huehner ! org \
rathann
parents: 15585
diff changeset
53 streaming_ctrl_t *streaming_ctrl_new(void);
3042
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
54 int streaming_bufferize( streaming_ctrl_t *streaming_ctrl, char *buffer, int size);
999
92833c9472e8 Continue implementation of the network streaming part.
bertrand
parents: 903
diff changeset
55
3042
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
56 int nop_streaming_read( int fd, char *buffer, int size, streaming_ctrl_t *stream_ctrl );
6b6fa2be9b97 Removed my buffer hack to use cache2.
bertrand
parents: 2310
diff changeset
57 int nop_streaming_seek( int fd, off_t pos, streaming_ctrl_t *stream_ctrl );
15585
281d155fb37f ported all network streams to the new API
nicodvb
parents: 11965
diff changeset
58 void streaming_ctrl_free( streaming_ctrl_t *streaming_ctrl );
841
c906b7600fc6 Included "netdb.h" file needed.
bertrand
parents:
diff changeset
59
11965
3d75bcc28231 enable seeking in http streams
attila
parents: 10625
diff changeset
60 int http_send_request(URL_t *url, off_t pos);
6455
c4078c1f9d53 Added a function prototype for reuse outside of network.c
bertrand
parents: 4729
diff changeset
61 HTTP_header_t *http_read_response(int fd);
c4078c1f9d53 Added a function prototype for reuse outside of network.c
bertrand
parents: 4729
diff changeset
62
7953
60624e692b95 GCC warning fixes
bertrand
parents: 7135
diff changeset
63 int http_authenticate(HTTP_header_t *http_hdr, URL_t *url, int *auth_retry);
15585
281d155fb37f ported all network streams to the new API
nicodvb
parents: 11965
diff changeset
64 URL_t* check4proxies(URL_t *url);
7953
60624e692b95 GCC warning fixes
bertrand
parents: 7135
diff changeset
65
841
c906b7600fc6 Included "netdb.h" file needed.
bertrand
parents:
diff changeset
66 #endif