ref_struct_VDXFBitmap - shekh/VirtualDub2 GitHub Wiki
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.