FFmpeg
config.h
Go to the documentation of this file.
1 // Avisynth C Interface Version 0.20
2 // Copyright 2003 Kevin Atkinson
3 
4 // This program is free software; you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation; either version 2 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program; if not, write to the Free Software
16 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA, or visit
17 // http://www.gnu.org/copyleft/gpl.html .
18 //
19 // As a special exception, I give you permission to link to the
20 // Avisynth C interface with independent modules that communicate with
21 // the Avisynth C interface solely through the interfaces defined in
22 // avisynth_c.h, regardless of the license terms of these independent
23 // modules, and to copy and distribute the resulting combined work
24 // under terms of your choice, provided that every copy of the
25 // combined work is accompanied by a complete copy of the source code
26 // of the Avisynth C interface and Avisynth itself (with the version
27 // used to produce the combined work), being distributed under the
28 // terms of the GNU General Public License plus this exception. An
29 // independent module is a module which is not derived from or based
30 // on Avisynth C Interface, such as 3rd-party filters, import and
31 // export plugins, or graphical user interfaces.
32 
33 #ifndef AVS_CONFIG_H
34 #define AVS_CONFIG_H
35 
36 // Undefine this to get cdecl calling convention
37 #define AVSC_USE_STDCALL 1
38 
39 // NOTE TO PLUGIN AUTHORS:
40 // Because FRAME_ALIGN can be substantially higher than the alignment
41 // a plugin actually needs, plugins should not use FRAME_ALIGN to check for
42 // alignment. They should always request the exact alignment value they need.
43 // This is to make sure that plugins work over the widest range of AviSynth
44 // builds possible.
45 #define FRAME_ALIGN 64
46 
47 #if defined(_M_AMD64) || defined(__x86_64)
48 # define X86_64
49 #elif defined(_M_IX86) || defined(__i386__)
50 # define X86_32
51 #else
52 # error Unsupported CPU architecture.
53 #endif
54 
55 #if defined(_MSC_VER)
56 # define MSVC
57 #elif defined(__GNUC__)
58 # define GCC
59 #elif defined(__clang__)
60 # define CLANG
61 #else
62 # error Unsupported compiler.
63 #endif
64 
65 #if defined(GCC)
66 # undef __forceinline
67 # define __forceinline inline
68 #endif
69 
70 #endif //AVS_CONFIG_H