34 #ifndef __AVXSYNTH_C__ 35 #define __AVXSYNTH_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) 80 #ifndef __AVXSYNTH_H__ 147 #define AVS_FRAME_ALIGN 16 177 {
return (p->
width!=0); }
201 {
return ((p->
pixel_type & c_space) == c_space); }
204 {
return ((p->
pixel_type & property)==property ); }
289 unsigned x=numerator, y=denominator;
291 unsigned t = x%y; x = y; y = t;
420 #if defined __cplusplus 423 #endif // __cplusplus 427 #if defined __cplusplus 429 #endif // __cplusplus 431 #ifndef AVSC_NO_DECLSPEC 433 {avs_release_video_frame(f);}
435 {
return avs_copy_video_frame(f);}
464 const AVS_Value *
array;
486 #if defined __cplusplus 489 #endif // __cplusplus 492 #if defined __cplusplus 494 #endif // __cplusplus 516 { AVS_Value v = {0}; v.
type =
'b'; v.
d.
boolean = v0 == 0 ? 0 : 1;
return v; }
520 { AVS_Value v = {0}; v.
type =
's'; v.
d.
string =
v0;
return v; }
524 { AVS_Value v = {0}; v.
type =
'e'; v.
d.
string =
v0;
return v; }
525 #ifndef AVSC_NO_DECLSPEC 527 { AVS_Value v = {0}; avs_set_to_clip(&v, v0);
return v; }
536 #if defined __cplusplus 539 #endif // __cplusplus 561 #if defined __cplusplus 563 #endif // __cplusplus 598 #if defined __cplusplus 601 #endif // __cplusplus 605 #if defined __cplusplus 607 #endif // __cplusplus 630 #if defined __cplusplus 633 #endif // __cplusplus 668 #if defined __cplusplus 670 #endif // __cplusplus 672 #ifndef AVSC_NO_DECLSPEC 684 #if defined __cplusplus 687 #endif // __cplusplus 705 #if defined __cplusplus 707 #endif // __cplusplus 715 #if defined __cplusplus 718 #endif // __cplusplus 724 #if defined __cplusplus 726 #endif // __cplusplus 728 #endif //__AVXSYNTH_C__
AVSC_INLINE int avs_is_string(AVS_Value v)
volatile long sequence_number
AVSC_INLINE int avs_is_rgb(const AVS_VideoInfo *p)
AVSC_INLINE int avs_array_size(AVS_Value v)
AVSC_INLINE AVS_Value avs_new_value_clip(AVS_Clip *v0)
AVSC_INLINE int avs_is_array(AVS_Value v)
AVSC_INLINE int avs_samples_per_second(const AVS_VideoInfo *p)
AVS_FilterInfo AVS_Value child
AVSC_INLINE int avs_is_bool(AVS_Value v)
AVSC_INLINE int avs_frames_from_audio_samples(const AVS_VideoInfo *p, INT64 samples)
AVS_Value void * user_data
AVSC_INLINE int avs_bytes_from_pixels(const AVS_VideoInfo *p, int pixels)
AVSC_INLINE AVS_Value avs_array_elt(AVS_Value v, int index)
AVSC_INLINE int avs_sample_type(const AVS_VideoInfo *p)
AVSC_INLINE INT64 avs_bytes_from_audio_samples(const AVS_VideoInfo *p, INT64 samples)
AVSC_INLINE AVS_Value avs_new_value_float(float v0)
AVSC_INLINE INT64 avs_audio_samples_from_frames(const AVS_VideoInfo *p, INT64 frames)
static void error(const char *err)
if it could not because there are no more frames
AVSC_INLINE int avs_is_planar(const AVS_VideoInfo *p)
GLsizei const char ** string
AVSC_INLINE int avs_bmp_size(const AVS_VideoInfo *vi)
AVSC_INLINE void avs_set_property(AVS_VideoInfo *p, int property)
AVSC_INLINE int avs_has_audio(const AVS_VideoInfo *p)
AVSC_INLINE int avs_is_rgb24(const AVS_VideoInfo *p)
const char AVS_Value const char ** arg_names
const char const char va_list val
AVSC_INLINE int avs_has_video(const AVS_VideoInfo *p)
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf offset
AVSC_INLINE AVS_Value avs_new_value_string(const char *v0)
AVS_VideoFrame int int int int new_height
AVSC_INLINE void avs_set_fps(AVS_VideoInfo *p, unsigned numerator, unsigned denominator)
AVSC_INLINE int avs_get_pitch_p(const AVS_VideoFrame *p, int plane)
AVSC_INLINE AVS_Value avs_new_value_int(int v0)
#define AVSC_API(ret, name)
AVSC_INLINE const unsigned char * avs_get_read_ptr(const AVS_VideoFrame *p)
typedef AVS_Value(AVSC_CC *AVS_ApplyFunc)(AVS_ScriptEnvironment *
AVSC_INLINE int avs_get_row_size(const AVS_VideoFrame *p)
const AVS_VideoInfo int align
AVSC_INLINE int avs_is_property(const AVS_VideoInfo *p, int property)
AVSC_INLINE int avs_is_parity_known(const AVS_VideoInfo *p)
AVSC_INLINE int avs_is_color_space(const AVS_VideoInfo *p, int c_space)
AVS_VideoFrame int int int int int rel_offsetU
AVSC_INLINE int avs_get_pitch(const AVS_VideoFrame *p)
static int get_frame(AVFilterContext *ctx, int is_second)
AVSC_INLINE int avs_as_int(AVS_Value v)
AVSC_INLINE int avs_audio_channels(const AVS_VideoInfo *p)
AVSC_INLINE int avs_bytes_per_channel_sample(const AVS_VideoInfo *p)
AVSC_INLINE int avs_get_height(const AVS_VideoFrame *p)
AVSC_INLINE unsigned char * avs_get_write_ptr_p(const AVS_VideoFrame *p, int plane)
AVSC_INLINE int avs_is_int(AVS_Value v)
AVS_ScriptEnvironment AVS_Clip *AVSC_INLINE int avs_as_bool(AVS_Value v)
typedef void(APIENTRY *FF_PFNGLACTIVETEXTUREPROC)(GLenum texture)
AVS_VideoFrame int int int new_row_size
AVSC_INLINE void avs_release_frame(AVS_VideoFrame *f)
AVSC_INLINE int avs_is_float(AVS_Value v)
AVSC_INLINE int avs_bits_per_pixel(const AVS_VideoInfo *p)
AVS_VideoFrame int int new_pitch
const char const char * params
AVSC_EXPORT const char *AVSC_CC avisynth_c_plugin_init(AVS_ScriptEnvironment *env)
AVSC_INLINE const unsigned char * avs_get_read_ptr_p(const AVS_VideoFrame *p, int plane)
AVSC_INLINE int avs_is_yv12(const AVS_VideoInfo *p)
AVSC_INLINE const char * avs_as_error(AVS_Value v)
AVSC_INLINE int avs_defined(AVS_Value v)
AVSC_INLINE AVS_Value avs_new_value_bool(int v0)
AVSC_INLINE int avs_is_clip(AVS_Value v)
AVS_VideoFrame int int int int int int int new_pitchUV
unsigned char int const unsigned char * srcp
AVSC_INLINE int avs_is_yuy2(const AVS_VideoInfo *p)
AVS_VideoFrameBuffer * vfb
const char const char AVS_ApplyFunc apply
AVS_FilterInfo AVS_Value int store_child
AVSC_INLINE int avs_is_bff(const AVS_VideoInfo *p)
struct AVS_ScriptEnvironment AVS_ScriptEnvironment
static double clip(void *opaque, double val)
Clip value val in the minval - maxval range.
AVSC_INLINE AVS_VideoFrame * avs_new_video_frame(AVS_ScriptEnvironment *env, const AVS_VideoInfo *vi)
AVSC_INLINE int avs_is_same_colorspace(AVS_VideoInfo *x, AVS_VideoInfo *y)
AVSC_INLINE double avs_as_float(AVS_Value v)
AVSC_INLINE const char * avs_as_string(AVS_Value v)
AVSC_INLINE int avs_is_field_based(const AVS_VideoInfo *p)
AVSC_INLINE int avs_bytes_per_audio_sample(const AVS_VideoInfo *p)
AVSC_INLINE int avs_is_rgb32(const AVS_VideoInfo *p)
AVSC_INLINE int avs_get_height_p(const AVS_VideoFrame *p, int plane)
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf default minimum maximum flags name is the option keep it simple and lowercase description are short
AVSC_INLINE AVS_Value avs_new_value_array(AVS_Value *v0, int size)
AVS_VideoFrame int int int int int int rel_offsetV
AVSC_INLINE AVS_VideoFrame * avs_copy_frame(AVS_VideoFrame *f)
AVSC_INLINE AVS_Value avs_new_value_error(const char *v0)
AVSC_INLINE const AVS_Value * avs_as_array(AVS_Value v)
AVSC_INLINE int avs_row_size(const AVS_VideoInfo *p)
AVSC_INLINE int avs_is_error(AVS_Value v)
AVSC_INLINE int avs_is_tff(const AVS_VideoInfo *p)
AVSC_INLINE void avs_set_field_based(AVS_VideoInfo *p, int isfieldbased)
static const AVS_Value avs_void
AVS_VideoFrame int rel_offset
Filter the word “frame” indicates either a video frame or a group of audio samples
AVSC_INLINE INT64 avs_audio_samples_from_bytes(const AVS_VideoInfo *p, INT64 bytes)
static int array[MAX_W *MAX_W]
unsigned char int const unsigned char int src_pitch
AVSC_INLINE int avs_get_row_size_p(const AVS_VideoFrame *p, int plane)
AVSC_INLINE int avs_is_yuv(const AVS_VideoInfo *p)
void(AVSC_CC * AVS_ShutdownFunc)(void *user_data, AVS_ScriptEnvironment *env)
AVSC_INLINE void avs_clear_property(AVS_VideoInfo *p, int property)
unsigned char int const unsigned char int int row_size
AVSC_INLINE AVS_VideoFrame * avs_new_frame(AVS_ScriptEnvironment *env, const AVS_VideoInfo *vi)
AVSC_INLINE unsigned char * avs_get_write_ptr(const AVS_VideoFrame *p)
unsigned char int dst_pitch
AVSC_INLINE int avs_is_writable(const AVS_VideoFrame *p)
int audio_samples_per_second