38 #ifndef __AVISYNTH_C__
39 #define __AVISYNTH_C__
42 # define EXTERN_C extern "C"
47 #define AVSC_USE_STDCALL 1
49 #ifndef AVSC_USE_STDCALL
50 # define AVSC_CC __cdecl
52 # define AVSC_CC __stdcall
55 #define AVSC_INLINE static __inline
57 #ifdef AVISYNTH_C_EXPORTS
58 # define AVSC_EXPORT EXTERN_C
59 # define AVSC_API(ret, name) EXTERN_C __declspec(dllexport) ret AVSC_CC name
61 # define AVSC_EXPORT EXTERN_C __declspec(dllexport)
62 # ifndef AVSC_NO_DECLSPEC
63 # define AVSC_API(ret, name) EXTERN_C __declspec(dllimport) ret AVSC_CC name
65 # define AVSC_API(ret, name) typedef ret (AVSC_CC *name##_func)
69 typedef unsigned char BYTE;
82 #ifndef __AVISYNTH_H__
191 #define AVS_FRAME_ALIGN 16
221 {
return (p->
width!=0); }
257 {
return ((p->
pixel_type & property)==property ); }
345 unsigned x=numerator,
y=denominator;
347 unsigned t = x%
y; x =
y; y = t;
482 #ifndef AVSC_NO_DECLSPEC
484 {avs_release_video_frame(f);}
486 {
return avs_copy_video_frame(f);}
568 #ifndef AVSC_NO_DECLSPEC
570 {
AVS_Value v; avs_set_to_clip(&v, v0);
return v; }
699 #ifndef AVSC_NO_DECLSPEC
742 #ifdef AVSC_NO_DECLSPEC
756 typedef struct AVS_Library AVS_Library;
758 #define AVSC_DECLARE_FUNC(name) name##_func name
803 #undef AVSC_DECLARE_FUNC
807 AVS_Library *library = (AVS_Library *)malloc(
sizeof(AVS_Library));
811 if (library->handle == NULL)
814 #define __AVSC_STRINGIFY(x) #x
815 #define AVSC_STRINGIFY(x) __AVSC_STRINGIFY(x)
816 #define AVSC_LOAD_FUNC(name) {\
817 library->name = (name##_func) GetProcAddress(library->handle, AVSC_STRINGIFY(name));\
818 if (library->name == NULL)\
822 AVSC_LOAD_FUNC(avs_add_function);
823 AVSC_LOAD_FUNC(avs_at_exit);
824 AVSC_LOAD_FUNC(avs_bit_blt);
825 AVSC_LOAD_FUNC(avs_check_version);
826 AVSC_LOAD_FUNC(avs_clip_get_error);
827 AVSC_LOAD_FUNC(avs_copy_clip);
828 AVSC_LOAD_FUNC(avs_copy_value);
829 AVSC_LOAD_FUNC(avs_copy_video_frame);
830 AVSC_LOAD_FUNC(avs_create_script_environment);
831 AVSC_LOAD_FUNC(avs_delete_script_environment);
832 AVSC_LOAD_FUNC(avs_function_exists);
833 AVSC_LOAD_FUNC(avs_get_audio);
834 AVSC_LOAD_FUNC(avs_get_cpu_flags);
835 AVSC_LOAD_FUNC(avs_get_error);
836 AVSC_LOAD_FUNC(avs_get_frame);
837 AVSC_LOAD_FUNC(avs_get_parity);
838 AVSC_LOAD_FUNC(avs_get_var);
839 AVSC_LOAD_FUNC(avs_get_version);
840 AVSC_LOAD_FUNC(avs_get_video_info);
841 AVSC_LOAD_FUNC(avs_invoke);
842 AVSC_LOAD_FUNC(avs_make_writable);
843 AVSC_LOAD_FUNC(avs_new_c_filter);
844 AVSC_LOAD_FUNC(avs_new_video_frame_a);
845 AVSC_LOAD_FUNC(avs_release_clip);
846 AVSC_LOAD_FUNC(avs_release_value);
847 AVSC_LOAD_FUNC(avs_release_video_frame);
848 AVSC_LOAD_FUNC(avs_save_string);
849 AVSC_LOAD_FUNC(avs_set_cache_hints);
850 AVSC_LOAD_FUNC(avs_set_global_var);
851 AVSC_LOAD_FUNC(avs_set_memory_max);
852 AVSC_LOAD_FUNC(avs_set_to_clip);
853 AVSC_LOAD_FUNC(avs_set_var);
854 AVSC_LOAD_FUNC(avs_set_working_dir);
855 AVSC_LOAD_FUNC(avs_sprintf);
856 AVSC_LOAD_FUNC(avs_subframe);
857 AVSC_LOAD_FUNC(avs_subframe_planar);
858 AVSC_LOAD_FUNC(avs_take_clip);
859 AVSC_LOAD_FUNC(avs_vsprintf);
861 #undef __AVSC_STRINGIFY
862 #undef AVSC_STRINGIFY
863 #undef AVSC_LOAD_FUNC
872 AVSC_INLINE void avs_free_library(AVS_Library *library) {