annotate os_support.h @ 6193:da9998b48dff libavformat

rtpdec: Malloc the fmtp value buffer This allows very large value strings, needed for xiph extradata. Patch by Josh Allmann, joshua dot allmann at gmail
author mstorsjo
date Mon, 28 Jun 2010 20:27:25 +0000
parents 6780dc315f36
children 2e3e76e8ada4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1306
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 448
diff changeset
1 /*
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 448
diff changeset
2 * various utilities for ffmpeg system
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 448
diff changeset
3 * copyright (c) 2000, 2001, 2002 Fabrice Bellard
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 448
diff changeset
4 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
5 * This file is part of FFmpeg.
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
6 *
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
1306
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 448
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 448
diff changeset
9 * License as published by the Free Software Foundation; either
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
1306
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 448
diff changeset
11 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
1306
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 448
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 448
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 448
diff changeset
15 * Lesser General Public License for more details.
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 448
diff changeset
16 *
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 448
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1306
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
1306
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 448
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 448
diff changeset
20 */
8bf9be9bb107 Add official LGPL license headers to the files that were missing them.
diego
parents: 448
diff changeset
21
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3617
diff changeset
22 #ifndef AVFORMAT_OS_SUPPORT_H
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3617
diff changeset
23 #define AVFORMAT_OS_SUPPORT_H
230
9f4f4ca9f7b5 simpler strptime - added os_support.[ch] - moved localtime_r to os_support.c
bellard
parents:
diff changeset
24
9f4f4ca9f7b5 simpler strptime - added os_support.[ch] - moved localtime_r to os_support.c
bellard
parents:
diff changeset
25 /**
5969
178de7695c6c Remove explicit filename from Doxygen @file commands.
diego
parents: 5324
diff changeset
26 * @file
230
9f4f4ca9f7b5 simpler strptime - added os_support.[ch] - moved localtime_r to os_support.c
bellard
parents:
diff changeset
27 * miscellaneous OS support macros and functions.
9f4f4ca9f7b5 simpler strptime - added os_support.[ch] - moved localtime_r to os_support.c
bellard
parents:
diff changeset
28 */
9f4f4ca9f7b5 simpler strptime - added os_support.[ch] - moved localtime_r to os_support.c
bellard
parents:
diff changeset
29
4284
40c9bef5b4e2 Fix undefined preprocessor directives warnings during 'make checkheaders'.
diego
parents: 4206
diff changeset
30 #include "config.h"
40c9bef5b4e2 Fix undefined preprocessor directives warnings during 'make checkheaders'.
diego
parents: 4206
diff changeset
31
5101
a8f8b675035b Only #define lseek to _lseeki64 on MinGW, not MinGW CE.
diego
parents: 4331
diff changeset
32 #if defined(__MINGW32__) && !defined(__MINGW32CE__)
1598
9832e339fb70 support files >2GB on MinGW
diego
parents: 1358
diff changeset
33 # include <fcntl.h>
9832e339fb70 support files >2GB on MinGW
diego
parents: 1358
diff changeset
34 # define lseek(f,p,w) _lseeki64((f), (p), (w))
6078
f23196c73178 win32: Use _fstati64() instead of plain old fstat() on Windows to support file
ramiro
parents: 5969
diff changeset
35 # define stat _stati64
f23196c73178 win32: Use _fstati64() instead of plain old fstat() on Windows to support file
ramiro
parents: 5969
diff changeset
36 # define fstat(f,s) _fstati64((f), (s))
5324
3616c1434288 Add comment on #endif about condition that triggers it.
ramiro
parents: 5101
diff changeset
37 #endif /* defined(__MINGW32__) && !defined(__MINGW32CE__) */
2322
fb72d949bae3 Check for winsock2.h instead of __MINGW32__
ramiro
parents: 2242
diff changeset
38
3994
4d5d9ac28e21 Only special-case absolute DOS paths on systems that support them.
ramiro
parents: 3969
diff changeset
39 static inline int is_dos_path(const char *path)
4d5d9ac28e21 Only special-case absolute DOS paths on systems that support them.
ramiro
parents: 3969
diff changeset
40 {
4206
c3102b189cb6 Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 4058
diff changeset
41 #if HAVE_DOS_PATHS
3994
4d5d9ac28e21 Only special-case absolute DOS paths on systems that support them.
ramiro
parents: 3969
diff changeset
42 if (path[0] && path[1] == ':')
4d5d9ac28e21 Only special-case absolute DOS paths on systems that support them.
ramiro
parents: 3969
diff changeset
43 return 1;
4d5d9ac28e21 Only special-case absolute DOS paths on systems that support them.
ramiro
parents: 3969
diff changeset
44 #endif
4d5d9ac28e21 Only special-case absolute DOS paths on systems that support them.
ramiro
parents: 3969
diff changeset
45 return 0;
4d5d9ac28e21 Only special-case absolute DOS paths on systems that support them.
ramiro
parents: 3969
diff changeset
46 }
4d5d9ac28e21 Only special-case absolute DOS paths on systems that support them.
ramiro
parents: 3969
diff changeset
47
4206
c3102b189cb6 Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 4058
diff changeset
48 #if CONFIG_NETWORK
c3102b189cb6 Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 4058
diff changeset
49 #if !HAVE_SOCKLEN_T
3124
7591b632d1c6 Group network-related code together
ramiro
parents: 3122
diff changeset
50 typedef int socklen_t;
7591b632d1c6 Group network-related code together
ramiro
parents: 3122
diff changeset
51 #endif
7591b632d1c6 Group network-related code together
ramiro
parents: 3122
diff changeset
52
1670
92afee454599 The long awaited BeOS cleanup, phase 1
mmu_man
parents: 1598
diff changeset
53 /* most of the time closing a socket is just closing an fd */
4206
c3102b189cb6 Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 4058
diff changeset
54 #if !HAVE_CLOSESOCKET
1670
92afee454599 The long awaited BeOS cleanup, phase 1
mmu_man
parents: 1598
diff changeset
55 #define closesocket close
92afee454599 The long awaited BeOS cleanup, phase 1
mmu_man
parents: 1598
diff changeset
56 #endif
92afee454599 The long awaited BeOS cleanup, phase 1
mmu_man
parents: 1598
diff changeset
57
4206
c3102b189cb6 Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 4058
diff changeset
58 #if CONFIG_FFSERVER
c3102b189cb6 Change semantic of CONFIG_*, HAVE_* and ARCH_*.
aurel
parents: 4058
diff changeset
59 #if !HAVE_POLL_H
1797
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
60 typedef unsigned long nfds_t;
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
61
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
62 struct pollfd {
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
63 int fd;
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
64 short events; /* events to look for */
3175
55ce214a13ea typo: occured --> occurred
diego
parents: 3127
diff changeset
65 short revents; /* events that occurred */
1797
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
66 };
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
67
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
68 /* events & revents */
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
69 #define POLLIN 0x0001 /* any readable data available */
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
70 #define POLLOUT 0x0002 /* file descriptor is writeable */
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
71 #define POLLRDNORM POLLIN
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
72 #define POLLWRNORM POLLOUT
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
73 #define POLLRDBAND 0x0008 /* priority readable data */
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
74 #define POLLWRBAND 0x0010 /* priority data can be written */
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
75 #define POLLPRI 0x0020 /* high priority readable data */
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
76
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
77 /* revents only */
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
78 #define POLLERR 0x0004 /* errors pending */
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
79 #define POLLHUP 0x0080 /* disconnected */
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
80 #define POLLNVAL 0x1000 /* invalid file descriptor */
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
81
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
82
4058
dcdf236c9909 Delete unnecessary 'extern' keywords.
diego
parents: 3994
diff changeset
83 int poll(struct pollfd *fds, nfds_t numfds, int timeout);
3039
1135ef610233 Include poll.h instead of sys/poll.h
lucabe
parents: 2878
diff changeset
84 #endif /* HAVE_POLL_H */
1799
0dc3a767943d Make sure we don't try to emulate poll() when it's there if --disable-ffserver... 10l
mmu_man
parents: 1798
diff changeset
85 #endif /* CONFIG_FFSERVER */
3125
bc818669cdbd Put network-related code under #ifdef
ramiro
parents: 3124
diff changeset
86 #endif /* CONFIG_NETWORK */
1797
20c8dfd3ee84 poll() emulation for BeOS, and maybe MinGW.
mmu_man
parents: 1670
diff changeset
87
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 3617
diff changeset
88 #endif /* AVFORMAT_OS_SUPPORT_H */