ホーム › Media.MediaFoundation › DXVA2_VideoProcessBltParams
DXVA2_VideoProcessBltParams
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| TargetFrame | LONGLONG | 8 | +0 | +0 | 出力対象フレームの時刻を100ナノ秒単位で示す。 |
| TargetRect | RECT | 16 | +8 | +8 | 出力サーフェス内の描画対象矩形領域。 |
| ConstrictionSize | SIZE | 8 | +24 | +24 | 解像度を制限(縮小)する際の出力サイズ。保護目的で使用する。 |
| StreamingFlags | DWORD | 4 | +32 | +32 | ストリーミング処理を制御するビットフラグ。予約領域として扱われる。 |
| BackgroundColor | DXVA2_AYUVSample16 | 8 | +36 | +36 | ターゲット矩形外を塗りつぶす背景色を示すDXVA2_AYUVSample16。 |
| DestFormat | DXVA2_ExtendedFormat | 8/4 | +48 | +44 | 出力先の色空間や輝度範囲を示すDXVA2_ExtendedFormat構造体。 |
| ProcAmpValues | DXVA2_ProcAmpValues | 32/16 | +56 | +48 | 明るさ・コントラスト等のProcAmp調整値を示すDXVA2_ProcAmpValues。 |
| Alpha | DXVA2_Fixed32 | 8/4 | +88 | +64 | 出力全体に適用する平面アルファ値を示すDXVA2_Fixed32。 |
| NoiseFilterLuma | DXVA2_FilterValues | 24/12 | +96 | +68 | 輝度成分に適用するノイズ除去フィルタ値を示すDXVA2_FilterValues。 |
| NoiseFilterChroma | DXVA2_FilterValues | 24/12 | +120 | +80 | 色差成分に適用するノイズ除去フィルタ値を示すDXVA2_FilterValues。 |
| DetailFilterLuma | DXVA2_FilterValues | 24/12 | +144 | +92 | 輝度成分に適用するディテール強調フィルタ値を示すDXVA2_FilterValues。 |
| DetailFilterChroma | DXVA2_FilterValues | 24/12 | +168 | +104 | 色差成分に適用するディテール強調フィルタ値を示すDXVA2_FilterValues。 |
| DestData | DWORD | 4 | +192 | +116 | 出力データの追加属性を示すビットフラグ。 |
各言語での定義
#include <windows.h>
// RECT (x64 16 / x86 16 バイト)
typedef struct RECT {
INT left;
INT top;
INT right;
INT bottom;
} RECT;
// SIZE (x64 8 / x86 8 バイト)
typedef struct SIZE {
INT cx;
INT cy;
} SIZE;
// DXVA2_AYUVSample16 (x64 8 / x86 8 バイト)
typedef struct DXVA2_AYUVSample16 {
WORD Cr;
WORD Cb;
WORD Y;
WORD Alpha;
} DXVA2_AYUVSample16;
// DXVA2_ExtendedFormat (x64 8 / x86 4 バイト)
typedef struct DXVA2_ExtendedFormat {
_Anonymous_e__Union Anonymous;
} DXVA2_ExtendedFormat;
// DXVA2_Fixed32 (x64 8 / x86 4 バイト)
typedef struct DXVA2_Fixed32 {
_Anonymous_e__Union Anonymous;
} DXVA2_Fixed32;
// DXVA2_ProcAmpValues (x64 32 / x86 16 バイト)
typedef struct DXVA2_ProcAmpValues {
DXVA2_Fixed32 Brightness;
DXVA2_Fixed32 Contrast;
DXVA2_Fixed32 Hue;
DXVA2_Fixed32 Saturation;
} DXVA2_ProcAmpValues;
// DXVA2_FilterValues (x64 24 / x86 12 バイト)
typedef struct DXVA2_FilterValues {
DXVA2_Fixed32 Level;
DXVA2_Fixed32 Threshold;
DXVA2_Fixed32 Radius;
} DXVA2_FilterValues;
// DXVA2_VideoProcessBltParams (x64 200 / x86 120 バイト)
typedef struct DXVA2_VideoProcessBltParams {
LONGLONG TargetFrame;
RECT TargetRect;
SIZE ConstrictionSize;
DWORD StreamingFlags;
DXVA2_AYUVSample16 BackgroundColor;
DXVA2_ExtendedFormat DestFormat;
DXVA2_ProcAmpValues ProcAmpValues;
DXVA2_Fixed32 Alpha;
DXVA2_FilterValues NoiseFilterLuma;
DXVA2_FilterValues NoiseFilterChroma;
DXVA2_FilterValues DetailFilterLuma;
DXVA2_FilterValues DetailFilterChroma;
DWORD DestData;
} DXVA2_VideoProcessBltParams;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct SIZE
{
public int cx;
public int cy;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DXVA2_AYUVSample16
{
public ushort Cr;
public ushort Cb;
public ushort Y;
public ushort Alpha;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DXVA2_ExtendedFormat
{
public _Anonymous_e__Union Anonymous;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DXVA2_Fixed32
{
public _Anonymous_e__Union Anonymous;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DXVA2_ProcAmpValues
{
public DXVA2_Fixed32 Brightness;
public DXVA2_Fixed32 Contrast;
public DXVA2_Fixed32 Hue;
public DXVA2_Fixed32 Saturation;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DXVA2_FilterValues
{
public DXVA2_Fixed32 Level;
public DXVA2_Fixed32 Threshold;
public DXVA2_Fixed32 Radius;
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DXVA2_VideoProcessBltParams
{
public long TargetFrame;
public RECT TargetRect;
public SIZE ConstrictionSize;
public uint StreamingFlags;
public DXVA2_AYUVSample16 BackgroundColor;
public DXVA2_ExtendedFormat DestFormat;
public DXVA2_ProcAmpValues ProcAmpValues;
public DXVA2_Fixed32 Alpha;
public DXVA2_FilterValues NoiseFilterLuma;
public DXVA2_FilterValues NoiseFilterChroma;
public DXVA2_FilterValues DetailFilterLuma;
public DXVA2_FilterValues DetailFilterChroma;
public uint DestData;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure RECT
Public left As Integer
Public top As Integer
Public right As Integer
Public bottom As Integer
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure SIZE
Public cx As Integer
Public cy As Integer
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DXVA2_AYUVSample16
Public Cr As UShort
Public Cb As UShort
Public Y As UShort
Public Alpha As UShort
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DXVA2_ExtendedFormat
Public Anonymous As _Anonymous_e__Union
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DXVA2_Fixed32
Public Anonymous As _Anonymous_e__Union
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DXVA2_ProcAmpValues
Public Brightness As DXVA2_Fixed32
Public Contrast As DXVA2_Fixed32
Public Hue As DXVA2_Fixed32
Public Saturation As DXVA2_Fixed32
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DXVA2_FilterValues
Public Level As DXVA2_Fixed32
Public Threshold As DXVA2_Fixed32
Public Radius As DXVA2_Fixed32
End Structure
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DXVA2_VideoProcessBltParams
Public TargetFrame As Long
Public TargetRect As RECT
Public ConstrictionSize As SIZE
Public StreamingFlags As UInteger
Public BackgroundColor As DXVA2_AYUVSample16
Public DestFormat As DXVA2_ExtendedFormat
Public ProcAmpValues As DXVA2_ProcAmpValues
Public Alpha As DXVA2_Fixed32
Public NoiseFilterLuma As DXVA2_FilterValues
Public NoiseFilterChroma As DXVA2_FilterValues
Public DetailFilterLuma As DXVA2_FilterValues
Public DetailFilterChroma As DXVA2_FilterValues
Public DestData As UInteger
End Structureimport ctypes
from ctypes import wintypes
class RECT(ctypes.Structure):
_fields_ = [
("left", ctypes.c_int),
("top", ctypes.c_int),
("right", ctypes.c_int),
("bottom", ctypes.c_int),
]
class SIZE(ctypes.Structure):
_fields_ = [
("cx", ctypes.c_int),
("cy", ctypes.c_int),
]
class DXVA2_AYUVSample16(ctypes.Structure):
_fields_ = [
("Cr", ctypes.c_ushort),
("Cb", ctypes.c_ushort),
("Y", ctypes.c_ushort),
("Alpha", ctypes.c_ushort),
]
class DXVA2_ExtendedFormat(ctypes.Structure):
_fields_ = [
("Anonymous", _Anonymous_e__Union),
]
class DXVA2_Fixed32(ctypes.Structure):
_fields_ = [
("Anonymous", _Anonymous_e__Union),
]
class DXVA2_ProcAmpValues(ctypes.Structure):
_fields_ = [
("Brightness", DXVA2_Fixed32),
("Contrast", DXVA2_Fixed32),
("Hue", DXVA2_Fixed32),
("Saturation", DXVA2_Fixed32),
]
class DXVA2_FilterValues(ctypes.Structure):
_fields_ = [
("Level", DXVA2_Fixed32),
("Threshold", DXVA2_Fixed32),
("Radius", DXVA2_Fixed32),
]
class DXVA2_VideoProcessBltParams(ctypes.Structure):
_fields_ = [
("TargetFrame", ctypes.c_longlong),
("TargetRect", RECT),
("ConstrictionSize", SIZE),
("StreamingFlags", wintypes.DWORD),
("BackgroundColor", DXVA2_AYUVSample16),
("DestFormat", DXVA2_ExtendedFormat),
("ProcAmpValues", DXVA2_ProcAmpValues),
("Alpha", DXVA2_Fixed32),
("NoiseFilterLuma", DXVA2_FilterValues),
("NoiseFilterChroma", DXVA2_FilterValues),
("DetailFilterLuma", DXVA2_FilterValues),
("DetailFilterChroma", DXVA2_FilterValues),
("DestData", wintypes.DWORD),
]#[repr(C)]
pub struct RECT {
pub left: i32,
pub top: i32,
pub right: i32,
pub bottom: i32,
}
#[repr(C)]
pub struct SIZE {
pub cx: i32,
pub cy: i32,
}
#[repr(C)]
pub struct DXVA2_AYUVSample16 {
pub Cr: u16,
pub Cb: u16,
pub Y: u16,
pub Alpha: u16,
}
#[repr(C)]
pub struct DXVA2_ExtendedFormat {
pub Anonymous: _Anonymous_e__Union,
}
#[repr(C)]
pub struct DXVA2_Fixed32 {
pub Anonymous: _Anonymous_e__Union,
}
#[repr(C)]
pub struct DXVA2_ProcAmpValues {
pub Brightness: DXVA2_Fixed32,
pub Contrast: DXVA2_Fixed32,
pub Hue: DXVA2_Fixed32,
pub Saturation: DXVA2_Fixed32,
}
#[repr(C)]
pub struct DXVA2_FilterValues {
pub Level: DXVA2_Fixed32,
pub Threshold: DXVA2_Fixed32,
pub Radius: DXVA2_Fixed32,
}
#[repr(C)]
pub struct DXVA2_VideoProcessBltParams {
pub TargetFrame: i64,
pub TargetRect: RECT,
pub ConstrictionSize: SIZE,
pub StreamingFlags: u32,
pub BackgroundColor: DXVA2_AYUVSample16,
pub DestFormat: DXVA2_ExtendedFormat,
pub ProcAmpValues: DXVA2_ProcAmpValues,
pub Alpha: DXVA2_Fixed32,
pub NoiseFilterLuma: DXVA2_FilterValues,
pub NoiseFilterChroma: DXVA2_FilterValues,
pub DetailFilterLuma: DXVA2_FilterValues,
pub DetailFilterChroma: DXVA2_FilterValues,
pub DestData: u32,
}import "golang.org/x/sys/windows"
type RECT struct {
left int32
top int32
right int32
bottom int32
}
type SIZE struct {
cx int32
cy int32
}
type DXVA2_AYUVSample16 struct {
Cr uint16
Cb uint16
Y uint16
Alpha uint16
}
type DXVA2_ExtendedFormat struct {
Anonymous _Anonymous_e__Union
}
type DXVA2_Fixed32 struct {
Anonymous _Anonymous_e__Union
}
type DXVA2_ProcAmpValues struct {
Brightness DXVA2_Fixed32
Contrast DXVA2_Fixed32
Hue DXVA2_Fixed32
Saturation DXVA2_Fixed32
}
type DXVA2_FilterValues struct {
Level DXVA2_Fixed32
Threshold DXVA2_Fixed32
Radius DXVA2_Fixed32
}
type DXVA2_VideoProcessBltParams struct {
TargetFrame int64
TargetRect RECT
ConstrictionSize SIZE
StreamingFlags uint32
BackgroundColor DXVA2_AYUVSample16
DestFormat DXVA2_ExtendedFormat
ProcAmpValues DXVA2_ProcAmpValues
Alpha DXVA2_Fixed32
NoiseFilterLuma DXVA2_FilterValues
NoiseFilterChroma DXVA2_FilterValues
DetailFilterLuma DXVA2_FilterValues
DetailFilterChroma DXVA2_FilterValues
DestData uint32
}type
RECT = record
left: Integer;
top: Integer;
right: Integer;
bottom: Integer;
end;
SIZE = record
cx: Integer;
cy: Integer;
end;
DXVA2_AYUVSample16 = record
Cr: Word;
Cb: Word;
Y: Word;
Alpha: Word;
end;
DXVA2_ExtendedFormat = record
Anonymous: _Anonymous_e__Union;
end;
DXVA2_Fixed32 = record
Anonymous: _Anonymous_e__Union;
end;
DXVA2_ProcAmpValues = record
Brightness: DXVA2_Fixed32;
Contrast: DXVA2_Fixed32;
Hue: DXVA2_Fixed32;
Saturation: DXVA2_Fixed32;
end;
DXVA2_FilterValues = record
Level: DXVA2_Fixed32;
Threshold: DXVA2_Fixed32;
Radius: DXVA2_Fixed32;
end;
DXVA2_VideoProcessBltParams = record
TargetFrame: Int64;
TargetRect: RECT;
ConstrictionSize: SIZE;
StreamingFlags: DWORD;
BackgroundColor: DXVA2_AYUVSample16;
DestFormat: DXVA2_ExtendedFormat;
ProcAmpValues: DXVA2_ProcAmpValues;
Alpha: DXVA2_Fixed32;
NoiseFilterLuma: DXVA2_FilterValues;
NoiseFilterChroma: DXVA2_FilterValues;
DetailFilterLuma: DXVA2_FilterValues;
DetailFilterChroma: DXVA2_FilterValues;
DestData: DWORD;
end;const RECT = extern struct {
left: i32,
top: i32,
right: i32,
bottom: i32,
};
const SIZE = extern struct {
cx: i32,
cy: i32,
};
const DXVA2_AYUVSample16 = extern struct {
Cr: u16,
Cb: u16,
Y: u16,
Alpha: u16,
};
const DXVA2_ExtendedFormat = extern struct {
Anonymous: _Anonymous_e__Union,
};
const DXVA2_Fixed32 = extern struct {
Anonymous: _Anonymous_e__Union,
};
const DXVA2_ProcAmpValues = extern struct {
Brightness: DXVA2_Fixed32,
Contrast: DXVA2_Fixed32,
Hue: DXVA2_Fixed32,
Saturation: DXVA2_Fixed32,
};
const DXVA2_FilterValues = extern struct {
Level: DXVA2_Fixed32,
Threshold: DXVA2_Fixed32,
Radius: DXVA2_Fixed32,
};
const DXVA2_VideoProcessBltParams = extern struct {
TargetFrame: i64,
TargetRect: RECT,
ConstrictionSize: SIZE,
StreamingFlags: u32,
BackgroundColor: DXVA2_AYUVSample16,
DestFormat: DXVA2_ExtendedFormat,
ProcAmpValues: DXVA2_ProcAmpValues,
Alpha: DXVA2_Fixed32,
NoiseFilterLuma: DXVA2_FilterValues,
NoiseFilterChroma: DXVA2_FilterValues,
DetailFilterLuma: DXVA2_FilterValues,
DetailFilterChroma: DXVA2_FilterValues,
DestData: u32,
};type
RECT {.bycopy.} = object
left: int32
top: int32
right: int32
bottom: int32
SIZE {.bycopy.} = object
cx: int32
cy: int32
DXVA2_AYUVSample16 {.bycopy.} = object
Cr: uint16
Cb: uint16
Y: uint16
Alpha: uint16
DXVA2_ExtendedFormat {.bycopy.} = object
Anonymous: _Anonymous_e__Union
DXVA2_Fixed32 {.bycopy.} = object
Anonymous: _Anonymous_e__Union
DXVA2_ProcAmpValues {.bycopy.} = object
Brightness: DXVA2_Fixed32
Contrast: DXVA2_Fixed32
Hue: DXVA2_Fixed32
Saturation: DXVA2_Fixed32
DXVA2_FilterValues {.bycopy.} = object
Level: DXVA2_Fixed32
Threshold: DXVA2_Fixed32
Radius: DXVA2_Fixed32
DXVA2_VideoProcessBltParams {.bycopy.} = object
TargetFrame: int64
TargetRect: RECT
ConstrictionSize: SIZE
StreamingFlags: uint32
BackgroundColor: DXVA2_AYUVSample16
DestFormat: DXVA2_ExtendedFormat
ProcAmpValues: DXVA2_ProcAmpValues
Alpha: DXVA2_Fixed32
NoiseFilterLuma: DXVA2_FilterValues
NoiseFilterChroma: DXVA2_FilterValues
DetailFilterLuma: DXVA2_FilterValues
DetailFilterChroma: DXVA2_FilterValues
DestData: uint32struct RECT
{
int left;
int top;
int right;
int bottom;
}
struct SIZE
{
int cx;
int cy;
}
struct DXVA2_AYUVSample16
{
ushort Cr;
ushort Cb;
ushort Y;
ushort Alpha;
}
struct DXVA2_ExtendedFormat
{
_Anonymous_e__Union Anonymous;
}
struct DXVA2_Fixed32
{
_Anonymous_e__Union Anonymous;
}
struct DXVA2_ProcAmpValues
{
DXVA2_Fixed32 Brightness;
DXVA2_Fixed32 Contrast;
DXVA2_Fixed32 Hue;
DXVA2_Fixed32 Saturation;
}
struct DXVA2_FilterValues
{
DXVA2_Fixed32 Level;
DXVA2_Fixed32 Threshold;
DXVA2_Fixed32 Radius;
}
struct DXVA2_VideoProcessBltParams
{
long TargetFrame;
RECT TargetRect;
SIZE ConstrictionSize;
uint StreamingFlags;
DXVA2_AYUVSample16 BackgroundColor;
DXVA2_ExtendedFormat DestFormat;
DXVA2_ProcAmpValues ProcAmpValues;
DXVA2_Fixed32 Alpha;
DXVA2_FilterValues NoiseFilterLuma;
DXVA2_FilterValues NoiseFilterChroma;
DXVA2_FilterValues DetailFilterLuma;
DXVA2_FilterValues DetailFilterChroma;
uint DestData;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x86 レイアウト)
; DXVA2_VideoProcessBltParams サイズ: 120 バイト(x86)
dim st, 30 ; 4byte整数×30(構造体サイズ 120 / 4 切り上げ)
; TargetFrame : LONGLONG (+0, 8byte) qpoke st,0,値 / qpeek(st,0) ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; TargetRect : RECT (+8, 16byte) varptr(st)+8 を基点に操作(16byte:入れ子/配列)
; ConstrictionSize : SIZE (+24, 8byte) varptr(st)+24 を基点に操作(8byte:入れ子/配列)
; StreamingFlags : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; BackgroundColor : DXVA2_AYUVSample16 (+36, 8byte) varptr(st)+36 を基点に操作(8byte:入れ子/配列)
; DestFormat : DXVA2_ExtendedFormat (+44, 4byte) varptr(st)+44 を基点に操作(4byte:入れ子/配列)
; ProcAmpValues : DXVA2_ProcAmpValues (+48, 16byte) varptr(st)+48 を基点に操作(16byte:入れ子/配列)
; Alpha : DXVA2_Fixed32 (+64, 4byte) varptr(st)+64 を基点に操作(4byte:入れ子/配列)
; NoiseFilterLuma : DXVA2_FilterValues (+68, 12byte) varptr(st)+68 を基点に操作(12byte:入れ子/配列)
; NoiseFilterChroma : DXVA2_FilterValues (+80, 12byte) varptr(st)+80 を基点に操作(12byte:入れ子/配列)
; DetailFilterLuma : DXVA2_FilterValues (+92, 12byte) varptr(st)+92 を基点に操作(12byte:入れ子/配列)
; DetailFilterChroma : DXVA2_FilterValues (+104, 12byte) varptr(st)+104 を基点に操作(12byte:入れ子/配列)
; DestData : DWORD (+116, 4byte) st.29 = 値 / 値 = st.29 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; DXVA2_VideoProcessBltParams サイズ: 200 バイト(x64)
dim st, 50 ; 4byte整数×50(構造体サイズ 200 / 4 切り上げ)
; TargetFrame : LONGLONG (+0, 8byte) qpoke st,0,値 / qpeek(st,0) ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; TargetRect : RECT (+8, 16byte) varptr(st)+8 を基点に操作(16byte:入れ子/配列)
; ConstrictionSize : SIZE (+24, 8byte) varptr(st)+24 を基点に操作(8byte:入れ子/配列)
; StreamingFlags : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; BackgroundColor : DXVA2_AYUVSample16 (+36, 8byte) varptr(st)+36 を基点に操作(8byte:入れ子/配列)
; DestFormat : DXVA2_ExtendedFormat (+48, 8byte) varptr(st)+48 を基点に操作(8byte:入れ子/配列)
; ProcAmpValues : DXVA2_ProcAmpValues (+56, 32byte) varptr(st)+56 を基点に操作(32byte:入れ子/配列)
; Alpha : DXVA2_Fixed32 (+88, 8byte) varptr(st)+88 を基点に操作(8byte:入れ子/配列)
; NoiseFilterLuma : DXVA2_FilterValues (+96, 24byte) varptr(st)+96 を基点に操作(24byte:入れ子/配列)
; NoiseFilterChroma : DXVA2_FilterValues (+120, 24byte) varptr(st)+120 を基点に操作(24byte:入れ子/配列)
; DetailFilterLuma : DXVA2_FilterValues (+144, 24byte) varptr(st)+144 を基点に操作(24byte:入れ子/配列)
; DetailFilterChroma : DXVA2_FilterValues (+168, 24byte) varptr(st)+168 を基点に操作(24byte:入れ子/配列)
; DestData : DWORD (+192, 4byte) st.48 = 値 / 値 = st.48 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global RECT
#field int left
#field int top
#field int right
#field int bottom
#endstruct
#defstruct global SIZE
#field int cx
#field int cy
#endstruct
#defstruct global DXVA2_AYUVSample16
#field short Cr
#field short Cb
#field short Y
#field short Alpha
#endstruct
#defstruct global DXVA2_ExtendedFormat
#field byte Anonymous 8
#endstruct
#defstruct global DXVA2_Fixed32
#field byte Anonymous 8
#endstruct
#defstruct global DXVA2_ProcAmpValues
#field DXVA2_Fixed32 Brightness
#field DXVA2_Fixed32 Contrast
#field DXVA2_Fixed32 Hue
#field DXVA2_Fixed32 Saturation
#endstruct
#defstruct global DXVA2_FilterValues
#field DXVA2_Fixed32 Level
#field DXVA2_Fixed32 Threshold
#field DXVA2_Fixed32 Radius
#endstruct
#defstruct global DXVA2_VideoProcessBltParams
#field int64 TargetFrame
#field RECT TargetRect
#field SIZE ConstrictionSize
#field int StreamingFlags
#field DXVA2_AYUVSample16 BackgroundColor
#field DXVA2_ExtendedFormat DestFormat
#field DXVA2_ProcAmpValues ProcAmpValues
#field DXVA2_Fixed32 Alpha
#field DXVA2_FilterValues NoiseFilterLuma
#field DXVA2_FilterValues NoiseFilterChroma
#field DXVA2_FilterValues DetailFilterLuma
#field DXVA2_FilterValues DetailFilterChroma
#field int DestData
#endstruct
stdim st, DXVA2_VideoProcessBltParams ; NSTRUCT 変数を確保
st->TargetFrame = 100
mes "TargetFrame=" + st->TargetFrame