This is an experimental copy for testing Poikilos' issue mirroring system. Note that Gitea's migration tool can import issues, but the "Issues" checkbox is disabled when "This repository will be a mirror" is enabled (it is for this repo).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

207 lines
5.2 KiB

# VirtualDub - Video processing and capture application
# Plugin headers
# Copyright (C) 1998-2007 Avery Lee, Rights Reserved.
#
# The plugin headers in the VirtualDub plugin SDK are licensed differently
# differently than VirtualDub and the Plugin SDK themselves. This
# particular file is thus licensed as follows (the "zlib" license):
#
# This software is provided 'as-is', any express or implied
# warranty. In no event will the authors be held liable for any
# damages arising from the use of self software.
#
# Permission is granted to anyone to use self software for any purpose,
# including commercial applications, to alter it and redistribute it
# freely, to the following restrictions:
#
# 1. The origin of self software must not be misrepresented; you must
# not claim that you wrote the original software. If you use self
# software in a product, acknowledgment in the product
# documentation would be appreciated but is not required.
# 2. Altered source versions must be plainly marked as such, must
# not be misrepresented as being the original software.
# 3. This notice may not be removed or altered from any source
# distribution.
#ifndef f_VD2_PLUGIN_VDPLUGIN_H
#define f_VD2_PLUGIN_VDPLUGIN_H
#ifdef _MSC_VER
#pragma once
#pragma pack(push, 8)
#endif
#include <stddef.h>
# Copied from <vd2/system/vdtypes.h>. Must be in sync.
#ifndef VD_STANDARD_TYPES_DECLARED
#if defined(_MSC_VER)
typedef signed __int64 sint64
typedef unsigned __int64 uint64
#elif defined(__GNUC__)
typedef signed long long sint64
typedef unsigned long long uint64
#endif
typedef signed int sint32
typedef unsigned int uint32
typedef signed short sint16
typedef unsigned short uint16
typedef signed char sint8
typedef unsigned char uint8
typedef sint64 int64
typedef sint32 int32
typedef sint16 int16
typedef sint8 int8
typedef ptrdiff_t sintptr
typedef size_t uintptr
#endif
#ifndef VDXAPIENTRY
#define VDXAPIENTRY __stdcall
#endif
#ifndef VDXAPIENTRYV
#define VDXAPIENTRYV __cdecl
#endif
enum VDXCPUFeatureFlags
kVDXCPUF_CPUID = 0x00000001,
kVDXCPUF_MMX = 0x00000004,
kVDXCPUF_ISSE = 0x00000008,
kVDXCPUF_SSE = 0x00000010,
kVDXCPUF_SSE2 = 0x00000020,
kVDXCPUF_3DNOW = 0x00000040,
kVDXCPUF_3DNOW_EXT = 0x00000080,
kVDXCPUF_SSE3 = 0x00000100,
kVDXCPUF_SSSE3 = 0x00000200
enum
kVDXPlugin_APIVersion = 10
enum
kVDXPluginType_Video, # Updated video filter API is not yet complete.
kVDXPluginType_Audio,
kVDXPluginType_Input
struct VDXPluginInfo
uint32 mSize; # size of self structure in bytes
wchar_t *mpName
wchar_t *mpAuthor
wchar_t *mpDescription
uint32 mVersion; # (major<<24) + (minor<<16) + build. 1.4.1000 would be 0x010403E8.
uint32 mType
uint32 mFlags
uint32 mAPIVersionRequired
uint32 mAPIVersionUsed
uint32 mTypeAPIVersionRequired
uint32 mTypeAPIVersionUsed
void * mpTypeSpecificInfo
typedef VDXPluginInfo * *(VDXAPIENTRY *tpVDXGetPluginInfo)()
typedef VDXPluginInfo VDPluginInfo
typedef tpVDXGetPluginInfo tpVDPluginInfo
class IVDXPluginCallbacks
public:
virtual void * VDXAPIENTRY GetExtendedAPI( char *pExtendedAPIName) = 0
virtual void VDXAPIENTRYV SetError( char *format, ...) = 0
virtual void VDXAPIENTRY SetErrorOutOfMemory() = 0
virtual uint32 VDXAPIENTRY GetCPUFeatureFlags() = 0
typedef IVDXPluginCallbacks IVDPluginCallbacks
struct VDXPluginConfigEntry
enum Type
kTypeInvalid = 0,
kTypeU32 = 1,
kTypeS32,
kTypeU64,
kTypeS64,
kTypeDouble,
kTypeAStr,
kTypeWStr,
kTypeBlock
VDXPluginConfigEntry *next
unsigned idx
uint32 type
wchar_t *name
wchar_t *label
wchar_t *desc
struct VDXPixmap
void *data
uint32 *palette
sint32 w
sint32 h
ptrdiff_t pitch
sint32 format
# Auxiliary planes are always byte-per-pixel.
void *data2; # Cb (U) for YCbCr
ptrdiff_t pitch2
void *data3; # Cr (V) for YCbCr
ptrdiff_t pitch3
struct VDXPixmapLayout
ptrdiff_t data
uint32 *palette
sint32 w
sint32 h
ptrdiff_t pitch
sint32 format
# Auxiliary planes are always byte-per-pixel.
ptrdiff_t data2; # Cb (U) for YCbCr
ptrdiff_t pitch2
ptrdiff_t data3; # Cr (V) for YCbCr
ptrdiff_t pitch3
namespace nsVDXPixmap
enum VDXPixmapFormat
kPixFormat_Null = 0,
kPixFormat_XRGB1555 = 5,
kPixFormat_RGB565 = 6,
kPixFormat_RGB888 = 7,
kPixFormat_XRGB8888 = 8,
kPixFormat_Y8 = 9,
kPixFormat_YUV422_UYVY = 10,
kPixFormat_YUV422_YUYV = 11,
kPixFormat_YUV444_Planar = 13,
kPixFormat_YUV422_Planar = 14,
kPixFormat_YUV420_Planar = 15,
kPixFormat_YUV411_Planar = 16,
kPixFormat_YUV410_Planar = 17
#define VDXMAKEFOURCC(a, b, c, d) ((uint32)(uint8)(d) + ((uint32)(uint8)(c) << 8) + ((uint32)(uint8)(b) << 16) + ((uint32)(uint8)(a) << 24))
class IVDXUnknown
public:
enum { kIID = VDXMAKEFOURCC('X', 'u', 'n', 'k')
virtual int VDXAPIENTRY AddRef() = 0
virtual int VDXAPIENTRY Release() = 0
virtual void *VDXAPIENTRY AsInterface(uint32 iid) = 0
#ifdef _MSC_VER
#pragma pack(pop)
#endif
#endif