FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
capi.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_CAPI_H
34 #define AVS_CAPI_H
35 
36 #ifdef __cplusplus
37 # define EXTERN_C extern "C"
38 #else
39 # define EXTERN_C
40 #endif
41 
42 #ifndef AVSC_USE_STDCALL
43 # define AVSC_CC __cdecl
44 #else
45 # define AVSC_CC __stdcall
46 #endif
47 
48 #define AVSC_INLINE static __inline
49 
50 #ifdef BUILDING_AVSCORE
51 # define AVSC_EXPORT EXTERN_C
52 # define AVSC_API(ret, name) EXTERN_C __declspec(dllexport) ret AVSC_CC name
53 #else
54 # define AVSC_EXPORT EXTERN_C __declspec(dllexport)
55 # ifndef AVSC_NO_DECLSPEC
56 # define AVSC_API(ret, name) EXTERN_C __declspec(dllimport) ret AVSC_CC name
57 # else
58 # define AVSC_API(ret, name) typedef ret (AVSC_CC *name##_func)
59 # endif
60 #endif
61 
62 #endif //AVS_CAPI_H