45 lines
1.9 KiB
Text
45 lines
1.9 KiB
Text
|
LoadPlugin (Avisynth Compatibility)
|
||
|
===================================
|
||
|
|
||
|
.. function:: LoadPlugin(string path)
|
||
|
:module: avs
|
||
|
|
||
|
Load an Avisynth 2.5 (32 bit only), 2.6 (32 and 64 bit) or Avisynth+ (32 and 64 bit) plugin.
|
||
|
If successful, the loaded plugin's functions will end up in the avs namespace. Note that
|
||
|
in the case of Avisynth+ there's no way to use the formats combined with alpha or
|
||
|
higher bitdepth packed RGB. Coincidentally there are no plugins that use this in a
|
||
|
meaningful way yet.
|
||
|
|
||
|
The compatibility module can work with a large number of Avisynth's plugins.
|
||
|
However, the wrapping is not complete, so the following things will cause
|
||
|
problems:
|
||
|
|
||
|
* The plugin expects YUY2 or RGB32 input. In this case provide input in
|
||
|
either YUV422P8 or RGB24 format pass compatpack=True as an argument
|
||
|
to the Avisynth function.
|
||
|
* The plugin tries to call env->invoke().
|
||
|
These calls are ignored when it is safe to do so, but otherwise they
|
||
|
will most likely trigger a fatal error.
|
||
|
* Plugins trying to read global variables.
|
||
|
There are no global variables.
|
||
|
|
||
|
If there are function name collisions functions will have a number appended
|
||
|
to them to make them distinct. For example if three functions are named
|
||
|
*func* then they will be named *func*, *func_2* and *func_3*. This means
|
||
|
that Avisynth functions that have multiple overloads (rare) will give
|
||
|
each overload a different name.
|
||
|
|
||
|
Note that if you are really insane you can load Avisynth's VirtualDub plugin
|
||
|
loader and use VirtualDub plugins as well. Function overloads are very common
|
||
|
when dealing with VirtualDub.
|
||
|
|
||
|
Beware of Python's escape character, this will fail::
|
||
|
|
||
|
LoadPlugin(path='c:\plugins\filter.dll')
|
||
|
|
||
|
Correct ways::
|
||
|
|
||
|
LoadPlugin(path='c:/plugins/filter.dll')
|
||
|
LoadPlugin(path=r'c:\plugins\filter.dll')
|
||
|
LoadPlugin(path='c:\\plugins\\filter.dll')
|