-
Notifications
You must be signed in to change notification settings - Fork 15
videofilt_whatsnew
VirtualDub Plugin SDK 1.2
What's new in the video filter API
Periodically new features are added to the VirtualDub filter API. Except where noted, these features are implemented such that their use is optional; old filters continue to work in hosts supporting newer versions, and filters can be made to work with older hosts through version detection.
- Support for fetching from multiple sources.
- Removal of deprecated features (HDC, last frame buffer, defaulting to matching stream 0 layout).
- Support for 3D GPU based acceleration (VDXA).
- All filter frames are now tagged with their frame number and starting/ending timestamps.
-
paramProc can now specify
FILTERPARAM_ALIGN_SCANLINES
to request 16-byte alignment for source and output buffer scanlines. - A filter can indicate when its output depends only on its input and
configuration parameters, and not frame numbers, by means of the
FILTERPARAM_PURE_TRANSFORM
flag. - copyProc2 has been added to fix an annoyance with the activation structure pointer.
- Filters may reference multiple source frames via the prefetchProc2 method.
- Smart rendering is now supported directly on filters, by allowing the filter itself to note when a direct copy is possible through a direct-mode prefetch.
- Pixel aspect ratio is now specified on filter buffers when available, and filters can alter the PAR as appropriate.
- A method called eventProc has been added to notify the filter of out of band events, such as upstream parameter changes that require cache invalidation.
-
FilterStateInfo
now includes the output frame as well as the destination frame.
- Support for processing YCbCr encoded video.
- Filters can modify the frame timing and length of a video stream.
- The
src
bitmap structure is guaranteed to be set up prior to configProc and can be used for UI purposes when video is present. - Added
IVDXFilterPreview2
interface to allow filters to determine if the preview window is still open or not.
- The
FilterStateInfo
structure now has a flags field indicating whether the filter chain is being initialized for preview, processing, or real-time (capture) mode.
- Added copyProc to support full C++ object semantics for filter data.
- Added stringProc2 as a bounds-checked version of stringProc.
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