Filter SDK/C API

From Avisynth wiki
Jump to: navigation, search

The header, avisynth_c.h, declares all the structures and miscellaneous constants that you might need when writing a plugin. All external plugins should #include it:

#include "avisynth_c.h"

Contents

differences C and C++

put somewhere else.

CreateScriptEnvironment

Structures

See C++ API for descriptions. If there is no C++ API equivalent, the description is given here.

C++ API C API
AvisynthError ?
doesn't exist AVS_FilterInfo
VideoFrameBuffer AVS_VideoFrameBuffer
VideoFrame AVS_VideoFrame
AlignPlanar doesn't exist
FillBorder doesn't exist
ConvertAudio doesn't exist
IScriptEnvironment AVS_ScriptEnvironment
IClip AVS_Clip
AVSValue AVS_Value

AVS_FilterInfo is a structure with members (the first three are structures too):

  • AVS_Clip (no members)
  • AVS_ScriptEnvironment (no members)
  • AVS_VideoFrame
  • get_parity
  • get_audio
  • set_cache_hints
  • free_filter
  • error
  • user_data

AVS_VideoFrame is a structure with members:

  • offset, pitch, row_size, height, offsetU, offsetV, pitchUV
  • row_sizeUV, heightUV

AVS_VideoInfo is a structure with members:

  • width, height
  • fps_numerator, fps_denominator
  • num_frames
  • pixel_type
  • audio_samples_per_second
  • sample_type
  • num_audio_samples
  • nchannels
  • image_type


AVS_Value is a structure with members:

  • type // 'a'rray, 'c'lip, 'b'ool, 'i'nt, 'f'loat, 's'tring, 'v'oid, or 'l'ong
              // for some function e'rror
  • array_size;
 union {
   void * clip; // do not use directly, use avs_take_clip
   char boolean;
   int integer;
   float floating_pt;
   const char * string;
   const AVS_Value * array;
 } d;


Structures

Constants

The available constants are the sames ones as in the C++ API.

Note contrary to the C++ API, float audio is not typedef'd to SFLOAT.




source: http://forum.doom9.org/showthread.php?p=1464911#post1464911

compiling plugins: http://forum.doom9.org/showthread.php?p=1092380#post1092380

example: http://forum.doom9.org/showthread.php?p=1001260#post1001260

For now the api is described here: http://www.kevina.org/avisynth_c/api.html . An example is given here: http://www.kevina.org/avisynth_c/example.html .

Personal tools