Mercurial > mplayer.hg
annotate stream/network.h @ 30502:a459aa73212f
Get rid of pointless CONFIG_QTX_CODECS --> QTX preprocessor indirection.
author | diego |
---|---|
date | Fri, 12 Feb 2010 14:10:21 +0000 |
parents | ce0122361a39 |
children | a98060c8bdd5 |
rev | line source |
---|---|
903 | 1 /* |
2 * Network layer for MPlayer | |
30426
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
28402
diff
changeset
|
3 * |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
28402
diff
changeset
|
4 * Copyright (C) 2001 Bertrand Baudet <bertrand_baudet@yahoo.com> |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
28402
diff
changeset
|
5 * |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
28402
diff
changeset
|
6 * This file is part of MPlayer. |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
28402
diff
changeset
|
7 * |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
28402
diff
changeset
|
8 * 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:
28402
diff
changeset
|
9 * 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:
28402
diff
changeset
|
10 * 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:
28402
diff
changeset
|
11 * (at your option) any later version. |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
28402
diff
changeset
|
12 * |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
28402
diff
changeset
|
13 * 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:
28402
diff
changeset
|
14 * 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:
28402
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
28402
diff
changeset
|
16 * GNU General Public License for more details. |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
28402
diff
changeset
|
17 * |
ce0122361a39
Add license header to all files missing it in the stream subdirectory.
diego
parents:
28402
diff
changeset
|
18 * 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:
28402
diff
changeset
|
19 * 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:
28402
diff
changeset
|
20 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
903 | 21 */ |
22 | |
26029 | 23 #ifndef MPLAYER_NETWORK_H |
24 #define MPLAYER_NETWORK_H | |
903 | 25 |
3424
1c2fb4764745
Moved the network related include files from network.c to network.h
bertrand
parents:
3042
diff
changeset
|
26 #include <fcntl.h> |
10281 | 27 #include <sys/time.h> |
28 #include <sys/types.h> | |
29 | |
30 #include "config.h" | |
28402 | 31 #if !HAVE_WINSOCK2_H |
3424
1c2fb4764745
Moved the network related include files from network.c to network.h
bertrand
parents:
3042
diff
changeset
|
32 #include <netdb.h> |
1c2fb4764745
Moved the network related include files from network.c to network.h
bertrand
parents:
3042
diff
changeset
|
33 #include <netinet/in.h> |
1c2fb4764745
Moved the network related include files from network.c to network.h
bertrand
parents:
3042
diff
changeset
|
34 #include <sys/socket.h> |
1c2fb4764745
Moved the network related include files from network.c to network.h
bertrand
parents:
3042
diff
changeset
|
35 #include <arpa/inet.h> |
10281 | 36 #endif |
3424
1c2fb4764745
Moved the network related include files from network.c to network.h
bertrand
parents:
3042
diff
changeset
|
37 |
903 | 38 #include "url.h" |
6455
c4078c1f9d53
Added a function prototype for reuse outside of network.c
bertrand
parents:
4729
diff
changeset
|
39 #include "http.h" |
903 | 40 |
28399
28406057a982
Convert HAVE_CLOSESOCKET and HAVE_SOCKLEN_T into 0/1 definitions.
diego
parents:
27712
diff
changeset
|
41 #if !HAVE_CLOSESOCKET |
27473
ae5da477539e
Move '#define closesocket close' preprocessor directive to a common place
diego
parents:
27472
diff
changeset
|
42 #define closesocket close |
ae5da477539e
Move '#define closesocket close' preprocessor directive to a common place
diego
parents:
27472
diff
changeset
|
43 #endif |
28399
28406057a982
Convert HAVE_CLOSESOCKET and HAVE_SOCKLEN_T into 0/1 definitions.
diego
parents:
27712
diff
changeset
|
44 #if !HAVE_SOCKLEN_T |
27712
daff903e23e2
Move socklen_t typedef from config.h to stream/network.h.
diego
parents:
27473
diff
changeset
|
45 typedef int socklen_t; |
daff903e23e2
Move socklen_t typedef from config.h to stream/network.h.
diego
parents:
27473
diff
changeset
|
46 #endif |
27473
ae5da477539e
Move '#define closesocket close' preprocessor directive to a common place
diego
parents:
27472
diff
changeset
|
47 |
999
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
48 #define BUFFER_SIZE 2048 |
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
49 |
15585 | 50 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
|
51 const char *mime_type; |
15585 | 52 int demuxer_type; |
53 } mime_struct_t; | |
54 | |
999
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
55 typedef enum { |
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
56 streaming_stopped_e, |
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
57 streaming_playing_e |
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
58 } streaming_status; |
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
59 |
3042 | 60 typedef struct streaming_control { |
61 URL_t *url; | |
62 streaming_status status; | |
63 int buffering; // boolean | |
64 unsigned int prebuffer_size; | |
999
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
65 char *buffer; |
3042 | 66 unsigned int buffer_size; |
67 unsigned int buffer_pos; | |
6641
2cdaadd779ac
Added the bandwidth variable. Used to set the max download bandwidth
bertrand
parents:
6455
diff
changeset
|
68 unsigned int bandwidth; // The downstream available |
3042 | 69 int (*streaming_read)( int fd, char *buffer, int buffer_size, struct streaming_control *stream_ctrl ); |
70 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
|
71 void *data; |
999
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
72 } streaming_ctrl_t; |
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
73 |
4729
f51bd827ed1c
fixed MP3 ICY detection, return detected file format for open_stream
alex
parents:
4251
diff
changeset
|
74 //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
|
75 streaming_ctrl_t *streaming_ctrl_new(void); |
3042 | 76 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
|
77 |
3042 | 78 int nop_streaming_read( int fd, char *buffer, int size, streaming_ctrl_t *stream_ctrl ); |
79 int nop_streaming_seek( int fd, off_t pos, streaming_ctrl_t *stream_ctrl ); | |
15585 | 80 void streaming_ctrl_free( streaming_ctrl_t *streaming_ctrl ); |
841 | 81 |
11965 | 82 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
|
83 HTTP_header_t *http_read_response(int fd); |
c4078c1f9d53
Added a function prototype for reuse outside of network.c
bertrand
parents:
4729
diff
changeset
|
84 |
7953 | 85 int http_authenticate(HTTP_header_t *http_hdr, URL_t *url, int *auth_retry); |
15585 | 86 URL_t* check4proxies(URL_t *url); |
7953 | 87 |
26029 | 88 #endif /* MPLAYER_NETWORK_H */ |