Mercurial > mplayer.hg
annotate stream/network.h @ 29588:17d7ae586d03
Reduce code duplication for half/normal/double video size handling.
author | reimar |
---|---|
date | Wed, 02 Sep 2009 14:02:15 +0000 |
parents | c884d17bd005 |
children | ce0122361a39 |
rev | line source |
---|---|
903 | 1 /* |
2 * Network layer for MPlayer | |
3 * by Bertrand BAUDET <bertrand_baudet@yahoo.com> | |
4 * (C) 2001, MPlayer team. | |
5 */ | |
6 | |
26029 | 7 #ifndef MPLAYER_NETWORK_H |
8 #define MPLAYER_NETWORK_H | |
903 | 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 | 11 #include <sys/time.h> |
12 #include <sys/types.h> | |
13 | |
14 #include "config.h" | |
28402 | 15 #if !HAVE_WINSOCK2_H |
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 | 20 #endif |
3424
1c2fb4764745
Moved the network related include files from network.c to network.h
bertrand
parents:
3042
diff
changeset
|
21 |
903 | 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" |
903 | 24 |
28399
28406057a982
Convert HAVE_CLOSESOCKET and HAVE_SOCKLEN_T into 0/1 definitions.
diego
parents:
27712
diff
changeset
|
25 #if !HAVE_CLOSESOCKET |
27473
ae5da477539e
Move '#define closesocket close' preprocessor directive to a common place
diego
parents:
27472
diff
changeset
|
26 #define closesocket close |
ae5da477539e
Move '#define closesocket close' preprocessor directive to a common place
diego
parents:
27472
diff
changeset
|
27 #endif |
28399
28406057a982
Convert HAVE_CLOSESOCKET and HAVE_SOCKLEN_T into 0/1 definitions.
diego
parents:
27712
diff
changeset
|
28 #if !HAVE_SOCKLEN_T |
27712
daff903e23e2
Move socklen_t typedef from config.h to stream/network.h.
diego
parents:
27473
diff
changeset
|
29 typedef int socklen_t; |
daff903e23e2
Move socklen_t typedef from config.h to stream/network.h.
diego
parents:
27473
diff
changeset
|
30 #endif |
27473
ae5da477539e
Move '#define closesocket close' preprocessor directive to a common place
diego
parents:
27472
diff
changeset
|
31 |
999
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
32 #define BUFFER_SIZE 2048 |
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
33 |
15585 | 34 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
|
35 const char *mime_type; |
15585 | 36 int demuxer_type; |
37 } mime_struct_t; | |
38 | |
999
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
39 typedef enum { |
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
40 streaming_stopped_e, |
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
41 streaming_playing_e |
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
42 } streaming_status; |
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
43 |
3042 | 44 typedef struct streaming_control { |
45 URL_t *url; | |
46 streaming_status status; | |
47 int buffering; // boolean | |
48 unsigned int prebuffer_size; | |
999
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
49 char *buffer; |
3042 | 50 unsigned int buffer_size; |
51 unsigned int buffer_pos; | |
6641
2cdaadd779ac
Added the bandwidth variable. Used to set the max download bandwidth
bertrand
parents:
6455
diff
changeset
|
52 unsigned int bandwidth; // The downstream available |
3042 | 53 int (*streaming_read)( int fd, char *buffer, int buffer_size, struct streaming_control *stream_ctrl ); |
54 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
|
55 void *data; |
999
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
56 } streaming_ctrl_t; |
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
57 |
4729
f51bd827ed1c
fixed MP3 ICY detection, return detected file format for open_stream
alex
parents:
4251
diff
changeset
|
58 //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
|
59 streaming_ctrl_t *streaming_ctrl_new(void); |
3042 | 60 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
|
61 |
3042 | 62 int nop_streaming_read( int fd, char *buffer, int size, streaming_ctrl_t *stream_ctrl ); |
63 int nop_streaming_seek( int fd, off_t pos, streaming_ctrl_t *stream_ctrl ); | |
15585 | 64 void streaming_ctrl_free( streaming_ctrl_t *streaming_ctrl ); |
841 | 65 |
11965 | 66 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
|
67 HTTP_header_t *http_read_response(int fd); |
c4078c1f9d53
Added a function prototype for reuse outside of network.c
bertrand
parents:
4729
diff
changeset
|
68 |
7953 | 69 int http_authenticate(HTTP_header_t *http_hdr, URL_t *url, int *auth_retry); |
15585 | 70 URL_t* check4proxies(URL_t *url); |
7953 | 71 |
26029 | 72 #endif /* MPLAYER_NETWORK_H */ |