ホーム › Media.MediaFoundation › D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH
D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| MaxMotionHints | DWORD | 4 | +0 | +0 | 当該解像度で1画素あたりに指定可能な動きヒントの最大数を返す。 |
| MinDeviation | DWORD | 4 | +4 | +4 | 当該解像度での探索偏差の最小値を返す。 |
| MaxDeviation | DWORD | 4 | +8 | +8 | 当該解像度での探索偏差の最大値を返す。 |
| MapSourcePreferenceRanking | DWORD | 4 | +12 | +12 | 当該解像度での動きベクトルマップソース推奨順位を示す。値が小さいほど推奨。 |
| MotionUnitPrecisionSupportFlags | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS | 4 | +16 | +16 | 当該解像度でサポートされる動きベクトル単位精度を示すフラグである。 |
| SupportFlags | D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS | 4 | +20 | +20 | 当該解像度での動き探索機能のサポート内容を示すフラグである。 |
各言語での定義
#include <windows.h>
// D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH (x64 24 / x86 24 バイト)
typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH {
DWORD MaxMotionHints;
DWORD MinDeviation;
DWORD MaxDeviation;
DWORD MapSourcePreferenceRanking;
D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS MotionUnitPrecisionSupportFlags;
D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS SupportFlags;
} D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH
{
public uint MaxMotionHints;
public uint MinDeviation;
public uint MaxDeviation;
public uint MapSourcePreferenceRanking;
public int MotionUnitPrecisionSupportFlags;
public int SupportFlags;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH
Public MaxMotionHints As UInteger
Public MinDeviation As UInteger
Public MaxDeviation As UInteger
Public MapSourcePreferenceRanking As UInteger
Public MotionUnitPrecisionSupportFlags As Integer
Public SupportFlags As Integer
End Structureimport ctypes
from ctypes import wintypes
class D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH(ctypes.Structure):
_fields_ = [
("MaxMotionHints", wintypes.DWORD),
("MinDeviation", wintypes.DWORD),
("MaxDeviation", wintypes.DWORD),
("MapSourcePreferenceRanking", wintypes.DWORD),
("MotionUnitPrecisionSupportFlags", ctypes.c_int),
("SupportFlags", ctypes.c_int),
]#[repr(C)]
pub struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH {
pub MaxMotionHints: u32,
pub MinDeviation: u32,
pub MaxDeviation: u32,
pub MapSourcePreferenceRanking: u32,
pub MotionUnitPrecisionSupportFlags: i32,
pub SupportFlags: i32,
}import "golang.org/x/sys/windows"
type D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH struct {
MaxMotionHints uint32
MinDeviation uint32
MaxDeviation uint32
MapSourcePreferenceRanking uint32
MotionUnitPrecisionSupportFlags int32
SupportFlags int32
}type
D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH = record
MaxMotionHints: DWORD;
MinDeviation: DWORD;
MaxDeviation: DWORD;
MapSourcePreferenceRanking: DWORD;
MotionUnitPrecisionSupportFlags: Integer;
SupportFlags: Integer;
end;const D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH = extern struct {
MaxMotionHints: u32,
MinDeviation: u32,
MaxDeviation: u32,
MapSourcePreferenceRanking: u32,
MotionUnitPrecisionSupportFlags: i32,
SupportFlags: i32,
};type
D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH {.bycopy.} = object
MaxMotionHints: uint32
MinDeviation: uint32
MaxDeviation: uint32
MapSourcePreferenceRanking: uint32
MotionUnitPrecisionSupportFlags: int32
SupportFlags: int32struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH
{
uint MaxMotionHints;
uint MinDeviation;
uint MaxDeviation;
uint MapSourcePreferenceRanking;
int MotionUnitPrecisionSupportFlags;
int SupportFlags;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH サイズ: 24 バイト(x64)
dim st, 6 ; 4byte整数×6(構造体サイズ 24 / 4 切り上げ)
; MaxMotionHints : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; MinDeviation : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; MaxDeviation : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; MapSourcePreferenceRanking : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; MotionUnitPrecisionSupportFlags : D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; SupportFlags : D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH
#field int MaxMotionHints
#field int MinDeviation
#field int MaxDeviation
#field int MapSourcePreferenceRanking
#field int MotionUnitPrecisionSupportFlags
#field int SupportFlags
#endstruct
stdim st, D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH ; NSTRUCT 変数を確保
st->MaxMotionHints = 100
mes "MaxMotionHints=" + st->MaxMotionHints