37 #ifndef __AVISYNTH_C__
38 #define __AVISYNTH_C__
41 # define EXTERN_C extern "C"
46 #define AVSC_USE_STDCALL 1
48 #ifndef AVSC_USE_STDCALL
49 # define AVSC_CC __cdecl
51 # define AVSC_CC __stdcall
54 #define AVSC_INLINE static __inline
56 #ifdef AVISYNTH_C_EXPORTS
57 # define AVSC_EXPORT EXTERN_C
58 # define AVSC_API(ret, name) EXTERN_C __declspec(dllexport) ret AVSC_CC name
60 # define AVSC_EXPORT EXTERN_C __declspec(dllexport)
61 # ifndef AVSC_NO_DECLSPEC
62 # define AVSC_API(ret, name) EXTERN_C __declspec(dllimport) ret AVSC_CC name
64 # define AVSC_API(ret, name) typedef ret (AVSC_CC *name##_func)
68 typedef unsigned char BYTE;
70 typedef long long int INT64;
81 #ifndef __AVISYNTH_H__
190 #define AVS_FRAME_ALIGN 16
220 {
return (p->
width!=0); }
256 {
return ((p->
pixel_type & property)==property ); }
344 unsigned x=numerator,
y=denominator;
346 unsigned t = x%
y; x =
y; y =
t;
481 #ifndef AVSC_NO_DECLSPEC
483 {avs_release_video_frame(f);}
485 {
return avs_copy_video_frame(f);}
567 #ifndef AVSC_NO_DECLSPEC
569 {
AVS_Value v; avs_set_to_clip(&v, v0);
return v; }
698 #ifndef AVSC_NO_DECLSPEC
741 #ifdef AVSC_NO_DECLSPEC
755 typedef struct AVS_Library AVS_Library;
757 #define AVSC_DECLARE_FUNC(name) name##_func name
802 #undef AVSC_DECLARE_FUNC
806 AVS_Library *library = (AVS_Library *)malloc(
sizeof(AVS_Library));
810 if (library->handle == NULL)
813 #define __AVSC_STRINGIFY(x) #x
814 #define AVSC_STRINGIFY(x) __AVSC_STRINGIFY(x)
815 #define AVSC_LOAD_FUNC(name) {\
816 library->name = (name##_func) GetProcAddress(library->handle, AVSC_STRINGIFY(name));\
817 if (library->name == NULL)\
821 AVSC_LOAD_FUNC(avs_add_function);
822 AVSC_LOAD_FUNC(avs_at_exit);
823 AVSC_LOAD_FUNC(avs_bit_blt);
824 AVSC_LOAD_FUNC(avs_check_version);
825 AVSC_LOAD_FUNC(avs_clip_get_error);
826 AVSC_LOAD_FUNC(avs_copy_clip);
827 AVSC_LOAD_FUNC(avs_copy_value);
828 AVSC_LOAD_FUNC(avs_copy_video_frame);
829 AVSC_LOAD_FUNC(avs_create_script_environment);
830 AVSC_LOAD_FUNC(avs_delete_script_environment);
831 AVSC_LOAD_FUNC(avs_function_exists);
832 AVSC_LOAD_FUNC(avs_get_audio);
833 AVSC_LOAD_FUNC(avs_get_cpu_flags);
834 AVSC_LOAD_FUNC(avs_get_error);
835 AVSC_LOAD_FUNC(avs_get_frame);
836 AVSC_LOAD_FUNC(avs_get_parity);
837 AVSC_LOAD_FUNC(avs_get_var);
838 AVSC_LOAD_FUNC(avs_get_version);
839 AVSC_LOAD_FUNC(avs_get_video_info);
840 AVSC_LOAD_FUNC(avs_invoke);
841 AVSC_LOAD_FUNC(avs_make_writable);
842 AVSC_LOAD_FUNC(avs_new_c_filter);
843 AVSC_LOAD_FUNC(avs_new_video_frame_a);
844 AVSC_LOAD_FUNC(avs_release_clip);
845 AVSC_LOAD_FUNC(avs_release_value);
846 AVSC_LOAD_FUNC(avs_release_video_frame);
847 AVSC_LOAD_FUNC(avs_save_string);
848 AVSC_LOAD_FUNC(avs_set_cache_hints);
849 AVSC_LOAD_FUNC(avs_set_global_var);
850 AVSC_LOAD_FUNC(avs_set_memory_max);
851 AVSC_LOAD_FUNC(avs_set_to_clip);
852 AVSC_LOAD_FUNC(avs_set_var);
853 AVSC_LOAD_FUNC(avs_set_working_dir);
854 AVSC_LOAD_FUNC(avs_sprintf);
855 AVSC_LOAD_FUNC(avs_subframe);
856 AVSC_LOAD_FUNC(avs_subframe_planar);
857 AVSC_LOAD_FUNC(avs_take_clip);
858 AVSC_LOAD_FUNC(avs_vsprintf);
860 #undef __AVSC_STRINGIFY
861 #undef AVSC_STRINGIFY
862 #undef AVSC_LOAD_FUNC
871 AVSC_INLINE void avs_free_library(AVS_Library *library) {