annotate network.h @ 5504:e15a959963f1 libavformat

handler can be NULL if we did not support this dynamic format (codec). Fixes issue 1658 (the crasher), although the format itself is obviously still unsupported.
author rbultje
date Thu, 07 Jan 2010 23:05:19 +0000
parents 40c9bef5b4e2
children afe4a96b6832
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1754
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
1 /*
4251
77e0c7511d41 cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents: 4206
diff changeset
2 * Copyright (c) 2007 The FFmpeg Project
1754
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
3 *
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
4 * This file is part of FFmpeg.
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
5 *
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
6 * FFmpeg is free software; you can redistribute it and/or
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
7 * modify it under the terms of the GNU Lesser General Public
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
8 * License as published by the Free Software Foundation; either
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
9 * version 2.1 of the License, or (at your option) any later version.
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
10 *
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
11 * FFmpeg is distributed in the hope that it will be useful,
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
14 * Lesser General Public License for more details.
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
15 *
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
16 * You should have received a copy of the GNU Lesser General Public
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
17 * License along with FFmpeg; if not, write to the Free Software
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
19 */
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
20
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 2620
diff changeset
21 #ifndef AVFORMAT_NETWORK_H
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 2620
diff changeset
22 #define AVFORMAT_NETWORK_H
1754
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
23
4284
40c9bef5b4e2 Fix undefined preprocessor directives warnings during 'make checkheaders'.
diego
parents: 4251
diff changeset
24 #include "config.h"
40c9bef5b4e2 Fix undefined preprocessor directives warnings during 'make checkheaders'.
diego
parents: 4251
diff changeset
25
4206
c3102b189cb6 Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 3852
diff changeset
26 #if HAVE_WINSOCK2_H
2085
8fc44b349f59 initial mingw networking support
alex
parents: 2057
diff changeset
27 #include <winsock2.h>
8fc44b349f59 initial mingw networking support
alex
parents: 2057
diff changeset
28 #include <ws2tcpip.h>
8fc44b349f59 initial mingw networking support
alex
parents: 2057
diff changeset
29
8fc44b349f59 initial mingw networking support
alex
parents: 2057
diff changeset
30 #define ff_neterrno() WSAGetLastError()
8fc44b349f59 initial mingw networking support
alex
parents: 2057
diff changeset
31 #define FF_NETERROR(err) WSA##err
8fc44b349f59 initial mingw networking support
alex
parents: 2057
diff changeset
32 #define WSAEAGAIN WSAEWOULDBLOCK
8fc44b349f59 initial mingw networking support
alex
parents: 2057
diff changeset
33 #else
1754
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
34 #include <sys/types.h>
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
35 #include <sys/socket.h>
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
36 #include <netinet/in.h>
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
37 #include <netdb.h>
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
38
2056
eeea52739ff3 use ff_neterrno() and FF_NETERROR() for networking error handling
alex
parents: 1943
diff changeset
39 #define ff_neterrno() errno
eeea52739ff3 use ff_neterrno() and FF_NETERROR() for networking error handling
alex
parents: 1943
diff changeset
40 #define FF_NETERROR(err) err
2085
8fc44b349f59 initial mingw networking support
alex
parents: 2057
diff changeset
41 #endif
8fc44b349f59 initial mingw networking support
alex
parents: 2057
diff changeset
42
4206
c3102b189cb6 Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 3852
diff changeset
43 #if HAVE_ARPA_INET_H
2085
8fc44b349f59 initial mingw networking support
alex
parents: 2057
diff changeset
44 #include <arpa/inet.h>
8fc44b349f59 initial mingw networking support
alex
parents: 2057
diff changeset
45 #endif
2056
eeea52739ff3 use ff_neterrno() and FF_NETERROR() for networking error handling
alex
parents: 1943
diff changeset
46
2057
857fbfeb2fa0 implement ff_socket_nonblock and use it in networking code
alex
parents: 2056
diff changeset
47 int ff_socket_nonblock(int socket, int enable);
857fbfeb2fa0 implement ff_socket_nonblock and use it in networking code
alex
parents: 2056
diff changeset
48
2351
b9a881c0967e Add initialization and cleanup functions for Winsock
ramiro
parents: 2322
diff changeset
49 static inline int ff_network_init(void)
b9a881c0967e Add initialization and cleanup functions for Winsock
ramiro
parents: 2322
diff changeset
50 {
4206
c3102b189cb6 Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 3852
diff changeset
51 #if HAVE_WINSOCK2_H
2351
b9a881c0967e Add initialization and cleanup functions for Winsock
ramiro
parents: 2322
diff changeset
52 WSADATA wsaData;
b9a881c0967e Add initialization and cleanup functions for Winsock
ramiro
parents: 2322
diff changeset
53 if (WSAStartup(MAKEWORD(1,1), &wsaData))
b9a881c0967e Add initialization and cleanup functions for Winsock
ramiro
parents: 2322
diff changeset
54 return 0;
b9a881c0967e Add initialization and cleanup functions for Winsock
ramiro
parents: 2322
diff changeset
55 #endif
b9a881c0967e Add initialization and cleanup functions for Winsock
ramiro
parents: 2322
diff changeset
56 return 1;
b9a881c0967e Add initialization and cleanup functions for Winsock
ramiro
parents: 2322
diff changeset
57 }
b9a881c0967e Add initialization and cleanup functions for Winsock
ramiro
parents: 2322
diff changeset
58
b9a881c0967e Add initialization and cleanup functions for Winsock
ramiro
parents: 2322
diff changeset
59 static inline void ff_network_close(void)
b9a881c0967e Add initialization and cleanup functions for Winsock
ramiro
parents: 2322
diff changeset
60 {
4206
c3102b189cb6 Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 3852
diff changeset
61 #if HAVE_WINSOCK2_H
2351
b9a881c0967e Add initialization and cleanup functions for Winsock
ramiro
parents: 2322
diff changeset
62 WSACleanup();
b9a881c0967e Add initialization and cleanup functions for Winsock
ramiro
parents: 2322
diff changeset
63 #endif
b9a881c0967e Add initialization and cleanup functions for Winsock
ramiro
parents: 2322
diff changeset
64 }
b9a881c0967e Add initialization and cleanup functions for Winsock
ramiro
parents: 2322
diff changeset
65
4206
c3102b189cb6 Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 3852
diff changeset
66 #if !HAVE_INET_ATON
1943
c0c0f19f0db6 Some more BeOS cleanup: check for arpa/inet.h; declare the prototype for inet_aton if not found; remove barpainet.h as it's not longer needed.
mmu_man
parents: 1754
diff changeset
67 /* in os_support.c */
c0c0f19f0db6 Some more BeOS cleanup: check for arpa/inet.h; declare the prototype for inet_aton if not found; remove barpainet.h as it's not longer needed.
mmu_man
parents: 1754
diff changeset
68 int inet_aton (const char * str, struct in_addr * add);
1754
1f7a6dc01100 move networking #includes into separate file
mru
parents:
diff changeset
69 #endif
1943
c0c0f19f0db6 Some more BeOS cleanup: check for arpa/inet.h; declare the prototype for inet_aton if not found; remove barpainet.h as it's not longer needed.
mmu_man
parents: 1754
diff changeset
70
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 2620
diff changeset
71 #endif /* AVFORMAT_NETWORK_H */