Mercurial > mplayer.hg
annotate stream/network.h @ 34754:9d4720deada1
Use approach used by ao_oss to avoid audio desync
when framestepping with ao_alsa and no hardware pause
support.
This fixes bug #2052.
author | reimar |
---|---|
date | Thu, 05 Apr 2012 22:29:37 +0000 |
parents | 80e4a267f6b8 |
children | 4dc2b1261d29 |
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 |
30655
73d7c7884b0c
Move struct streaming_control from network.h to stream.h, where it is used.
diego
parents:
30654
diff
changeset
|
38 #include "stream.h" |
903 | 39 #include "url.h" |
6455
c4078c1f9d53
Added a function prototype for reuse outside of network.c
bertrand
parents:
4729
diff
changeset
|
40 #include "http.h" |
903 | 41 |
31500 | 42 #ifdef MSG_NOSIGNAL |
43 #define DEFAULT_SEND_FLAGS MSG_NOSIGNAL | |
44 #else | |
45 #define DEFAULT_SEND_FLAGS 0 | |
46 #endif | |
47 | |
28399
28406057a982
Convert HAVE_CLOSESOCKET and HAVE_SOCKLEN_T into 0/1 definitions.
diego
parents:
27712
diff
changeset
|
48 #if !HAVE_CLOSESOCKET |
27473
ae5da477539e
Move '#define closesocket close' preprocessor directive to a common place
diego
parents:
27472
diff
changeset
|
49 #define closesocket close |
ae5da477539e
Move '#define closesocket close' preprocessor directive to a common place
diego
parents:
27472
diff
changeset
|
50 #endif |
28399
28406057a982
Convert HAVE_CLOSESOCKET and HAVE_SOCKLEN_T into 0/1 definitions.
diego
parents:
27712
diff
changeset
|
51 #if !HAVE_SOCKLEN_T |
27712
daff903e23e2
Move socklen_t typedef from config.h to stream/network.h.
diego
parents:
27473
diff
changeset
|
52 typedef int socklen_t; |
daff903e23e2
Move socklen_t typedef from config.h to stream/network.h.
diego
parents:
27473
diff
changeset
|
53 #endif |
27473
ae5da477539e
Move '#define closesocket close' preprocessor directive to a common place
diego
parents:
27472
diff
changeset
|
54 |
999
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
55 #define BUFFER_SIZE 2048 |
92833c9472e8
Continue implementation of the network streaming part.
bertrand
parents:
903
diff
changeset
|
56 |
15585 | 57 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
|
58 const char *mime_type; |
15585 | 59 int demuxer_type; |
60 } mime_struct_t; | |
61 | |
32024
6c66a5ea013b
Move mime_type_table extern declaration to network.h, where it belongs.
diego
parents:
31500
diff
changeset
|
62 extern const mime_struct_t mime_type_table[]; |
6c66a5ea013b
Move mime_type_table extern declaration to network.h, where it belongs.
diego
parents:
31500
diff
changeset
|
63 |
31393
496c8a6d045b
Move extern variable declarations for network.c to network.h.
diego
parents:
30656
diff
changeset
|
64 extern char *cookies_file; |
496c8a6d045b
Move extern variable declarations for network.c to network.h.
diego
parents:
30656
diff
changeset
|
65 extern char *network_password; |
496c8a6d045b
Move extern variable declarations for network.c to network.h.
diego
parents:
30656
diff
changeset
|
66 extern char *network_referrer; |
496c8a6d045b
Move extern variable declarations for network.c to network.h.
diego
parents:
30656
diff
changeset
|
67 extern char *network_useragent; |
496c8a6d045b
Move extern variable declarations for network.c to network.h.
diego
parents:
30656
diff
changeset
|
68 extern char *network_username; |
32995 | 69 extern char **network_http_header_fields; |
31393
496c8a6d045b
Move extern variable declarations for network.c to network.h.
diego
parents:
30656
diff
changeset
|
70 |
496c8a6d045b
Move extern variable declarations for network.c to network.h.
diego
parents:
30656
diff
changeset
|
71 extern int network_bandwidth; |
496c8a6d045b
Move extern variable declarations for network.c to network.h.
diego
parents:
30656
diff
changeset
|
72 extern int network_cookies_enabled; |
496c8a6d045b
Move extern variable declarations for network.c to network.h.
diego
parents:
30656
diff
changeset
|
73 extern int network_ipv4_only_proxy; |
496c8a6d045b
Move extern variable declarations for network.c to network.h.
diego
parents:
30656
diff
changeset
|
74 |
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 |
30656 | 88 void fixup_network_stream_cache(stream_t *stream); |
89 int http_seek(stream_t *stream, off_t pos); | |
90 | |
26029 | 91 #endif /* MPLAYER_NETWORK_H */ |