-
Notifications
You must be signed in to change notification settings - Fork 16
general_dynamicloading
VirtualDub Plugin SDK 1.2
Dynamic loading
The plugins definitions in the SDK are designed to allow dynamic loading, where a host loads plugins only when needed. This reduces memory footprint and resource usage, and also sidesteps a problem with thread-local storage (TLS) handles on older operating systems — these are in short supply per thread, and can be exhausted without dynamic loading as one is consumed for every instance of the Microsoft C runtime library (CRT) loaded in memory.
Dynamic loading is mostly invisible to plugins, since the host
automatically shadows important data from the plugin and loads the
plugin only when necessary. However, this does mean that the plugin
should load and unload quickly. Also, if the plugin needs to stay in
memory longer, such as to wait for shutdown or for the user to close
status UI, the plugin can keep itself in memory by incrementing its DLL
reference count, such as by the Win32 LoadLibrary()
or
GetModuleHandleEx()
functions; the plugin won't unload when the host
disconnects, and when it reconnects, it will use the DLL that is still
resident.
Copyright (C) 2007-2012 Avery Lee.
Setting up your development environment
Conventions
Plugin initialization
Dynamic loading
Reference counting
Using CPU extensions
Introduction
What's new
Breaking changes
Gotchas
Deprecated features
Migrating from the old Filter SDK
Programming model
Handling bitmaps
Creating a video filter
Setting filter parameters
Processing video frames
Managing filter data
Creating time-varying filters
Handling aspect ratio
Prefetching multiple source frames
Handling multiple sources
Making a filter configurable
Scripting support
CPU dependent optimization
VDXA index omitted
Getting started
Writing the module entry point
Creating a video filter
Adding configurability
Adding script support
Introduction
What's new
Autodetect
Direct mode
Video frames vs. samples
Video decodint model
Video decoder