-
Notifications
You must be signed in to change notification settings - Fork 12
ref_struct_VDXFBitmap
VirtualDub Plugin SDK 1.2
VDXFBitmap structure
Structure used to describe a frame buffer used as sources or outputs during video filter operation.
class VDXFBitmap : public VDXBitmap {
public:
enum {
/// Set in paramProc if the filter requires a Win32 GDI display context
/// for a bitmap.
///
/// (Deprecated as of API V12 - do not use)
/// (Blocked as of API V16)
NEEDS_HDC = 0x00000001L,
};
uint32 dwFlags;
VDXHDC hdc;
uint32 mFrameRateHi; // Frame rate numerator
uint32 mFrameRateLo; // Frame rate denominator
sint64 mFrameCount; // Frame count; -1 if unlimited or indeterminate
VDXPixmapLayout *mpPixmapLayout;
const VDXPixmap *mpPixmap;
uint32 mAspectRatioHi; ///< Pixel aspect ratio fraction (numerator). 0/0 = unknown
uint32 mAspectRatioLo; ///< Pixel aspect ratio fraction (denominator).
sint64 mFrameNumber; ///< Current frame number (zero based).
sint64 mFrameTimestampStart; ///< Starting timestamp of frame, in 100ns units.
sint64 mFrameTimestampEnd; ///< Ending timestamp of frame, in 100ns units.
sint64 mCookie; ///< Cookie supplied when frame was requested.
uint32 mVDXAHandle; ///< Acceleration handle to be used with VDXA routines.
uint32 mBorderWidth;
uint32 mBorderHeight;
};
dwFlags
A bitfield with the following flags:
NEEDS_HDC
(V1-V15 only) Set when a Win32 GDI display context handle is desired
for the frame buffer. This allows GDI rendering, particularly text
rendering, into the frame buffer. This request is only valid for 32-bit
RGB (XRGB8888
) format frame buffers. Use of this flag can slow down
filter execution due to the need to copy frame data in and out of a GDI
compatible bitmap layout and is prohibited entirely starting with the
V16 API.
hdc
(V1-V15 only) A Win32 GDI display context handle, when the
NEEDS_HDC
flag has been specified.
mFrameRateHi
(V12+ only) The numerator of the stream frame rate, represented as a
fraction.
mFrameRateLo
(V12+ only) The denominator of the stream frame rate, represented as
a fraction.
mFrameCount
(V12+ only) The number of frames in the stream. For source streams,
this may be -1 for a live stream. For output streams, this is normally
the same as the source stream unless modified by the filter.
mpPixmapLayout
(V12+ only) The image layout of frames in this frame buffer. This
field is negotiated in paramProc
and is only valid if the depth
field of VDXBitmap
is set to 0; if so, it takes precedence over the
layout fields in that structure. The pixmap and bitmap structures are
merged and this field is valid in startProc
and runProc
.
mpPixmap
(V12+ only) Image descriptor for the currently bound frame. This
field is only valid in runProc
.
mAspectRatioHi
(V14+ only) The numerator of the pixel aspect ratio, represented as
a fraction, where a fraction greater than 1 represents a pixel that is
wider than it is tall. A fraction of 0/0 means indeterminate.
mAspectRatioLo
(V14+ only) The denominator of the pixel aspect ratio, represented
as a fraction.
mFrameNumber
(V12+ only) The number of the currently bound frame, starting at
zero.
mFrameTimestampStart
(V14+ only) The timestamp of the start of the current frame, in
100ns units, from the start of the stream.
mFrameTimestampEnd
(V14+ only) The timestamp of the end of the current frame, in 100ns
units, from the start of the stream.
mCookie
(V14+ only) Contains the arbitrary value that was passed when this
frame was requested by prefetchProc
or prefetchProc2
.
mVDXAHandle
(V15+ only) 3D video acceleration handle for this frame. This field
is only valid when a filter is running in 3D acceleration mode.
mBorderWidth
(V15+ only) Number of surrounding border pixels requested or
available horizontally in this frame buffer. This field is only valid
when a filter is running in 3D acceleration mode.
mBorderHeight
(V15+ only) Number of surrounding border pixels requested or
available vertically in this frame buffer. This field is only valid when
a filter is running in 3D acceleration mode.
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