ホーム › Media.KernelStreaming › VBICODECFILTERING_STATISTICS_COMMON
VBICODECFILTERING_STATISTICS_COMMON
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| InputSRBsProcessed | DWORD | 4 | +0 | +0 | 処理した入力ストリームリクエストブロック(SRB)数を示す。 |
| OutputSRBsProcessed | DWORD | 4 | +4 | +4 | 処理した出力SRB数を示す。 |
| SRBsIgnored | DWORD | 4 | +8 | +8 | 無視したSRB数を示す。 |
| InputSRBsMissing | DWORD | 4 | +12 | +12 | 欠落した入力SRB数を示す。 |
| OutputSRBsMissing | DWORD | 4 | +16 | +16 | 欠落した出力SRB数を示す。 |
| OutputFailures | DWORD | 4 | +20 | +20 | 出力に失敗した回数を示す。 |
| InternalErrors | DWORD | 4 | +24 | +24 | 内部エラーの発生回数を示す。 |
| ExternalErrors | DWORD | 4 | +28 | +28 | 外部要因によるエラーの発生回数を示す。 |
| InputDiscontinuities | DWORD | 4 | +32 | +32 | 入力の不連続発生回数を示す。 |
| DSPFailures | DWORD | 4 | +36 | +36 | DSP処理の失敗回数を示す。 |
| TvTunerChanges | DWORD | 4 | +40 | +40 | TVチューナー変更の発生回数を示す。 |
| VBIHeaderChanges | DWORD | 4 | +44 | +44 | VBIヘッダ変更の発生回数を示す。 |
| LineConfidenceAvg | DWORD | 4 | +48 | +48 | 走査線信頼度の平均値を示す。 |
| BytesOutput | DWORD | 4 | +52 | +52 | 出力した総バイト数を示す。 |
各言語での定義
#include <windows.h>
// VBICODECFILTERING_STATISTICS_COMMON (x64 56 / x86 56 バイト)
typedef struct VBICODECFILTERING_STATISTICS_COMMON {
DWORD InputSRBsProcessed;
DWORD OutputSRBsProcessed;
DWORD SRBsIgnored;
DWORD InputSRBsMissing;
DWORD OutputSRBsMissing;
DWORD OutputFailures;
DWORD InternalErrors;
DWORD ExternalErrors;
DWORD InputDiscontinuities;
DWORD DSPFailures;
DWORD TvTunerChanges;
DWORD VBIHeaderChanges;
DWORD LineConfidenceAvg;
DWORD BytesOutput;
} VBICODECFILTERING_STATISTICS_COMMON;using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct VBICODECFILTERING_STATISTICS_COMMON
{
public uint InputSRBsProcessed;
public uint OutputSRBsProcessed;
public uint SRBsIgnored;
public uint InputSRBsMissing;
public uint OutputSRBsMissing;
public uint OutputFailures;
public uint InternalErrors;
public uint ExternalErrors;
public uint InputDiscontinuities;
public uint DSPFailures;
public uint TvTunerChanges;
public uint VBIHeaderChanges;
public uint LineConfidenceAvg;
public uint BytesOutput;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure VBICODECFILTERING_STATISTICS_COMMON
Public InputSRBsProcessed As UInteger
Public OutputSRBsProcessed As UInteger
Public SRBsIgnored As UInteger
Public InputSRBsMissing As UInteger
Public OutputSRBsMissing As UInteger
Public OutputFailures As UInteger
Public InternalErrors As UInteger
Public ExternalErrors As UInteger
Public InputDiscontinuities As UInteger
Public DSPFailures As UInteger
Public TvTunerChanges As UInteger
Public VBIHeaderChanges As UInteger
Public LineConfidenceAvg As UInteger
Public BytesOutput As UInteger
End Structureimport ctypes
from ctypes import wintypes
class VBICODECFILTERING_STATISTICS_COMMON(ctypes.Structure):
_fields_ = [
("InputSRBsProcessed", wintypes.DWORD),
("OutputSRBsProcessed", wintypes.DWORD),
("SRBsIgnored", wintypes.DWORD),
("InputSRBsMissing", wintypes.DWORD),
("OutputSRBsMissing", wintypes.DWORD),
("OutputFailures", wintypes.DWORD),
("InternalErrors", wintypes.DWORD),
("ExternalErrors", wintypes.DWORD),
("InputDiscontinuities", wintypes.DWORD),
("DSPFailures", wintypes.DWORD),
("TvTunerChanges", wintypes.DWORD),
("VBIHeaderChanges", wintypes.DWORD),
("LineConfidenceAvg", wintypes.DWORD),
("BytesOutput", wintypes.DWORD),
]#[repr(C)]
pub struct VBICODECFILTERING_STATISTICS_COMMON {
pub InputSRBsProcessed: u32,
pub OutputSRBsProcessed: u32,
pub SRBsIgnored: u32,
pub InputSRBsMissing: u32,
pub OutputSRBsMissing: u32,
pub OutputFailures: u32,
pub InternalErrors: u32,
pub ExternalErrors: u32,
pub InputDiscontinuities: u32,
pub DSPFailures: u32,
pub TvTunerChanges: u32,
pub VBIHeaderChanges: u32,
pub LineConfidenceAvg: u32,
pub BytesOutput: u32,
}import "golang.org/x/sys/windows"
type VBICODECFILTERING_STATISTICS_COMMON struct {
InputSRBsProcessed uint32
OutputSRBsProcessed uint32
SRBsIgnored uint32
InputSRBsMissing uint32
OutputSRBsMissing uint32
OutputFailures uint32
InternalErrors uint32
ExternalErrors uint32
InputDiscontinuities uint32
DSPFailures uint32
TvTunerChanges uint32
VBIHeaderChanges uint32
LineConfidenceAvg uint32
BytesOutput uint32
}type
VBICODECFILTERING_STATISTICS_COMMON = record
InputSRBsProcessed: DWORD;
OutputSRBsProcessed: DWORD;
SRBsIgnored: DWORD;
InputSRBsMissing: DWORD;
OutputSRBsMissing: DWORD;
OutputFailures: DWORD;
InternalErrors: DWORD;
ExternalErrors: DWORD;
InputDiscontinuities: DWORD;
DSPFailures: DWORD;
TvTunerChanges: DWORD;
VBIHeaderChanges: DWORD;
LineConfidenceAvg: DWORD;
BytesOutput: DWORD;
end;const VBICODECFILTERING_STATISTICS_COMMON = extern struct {
InputSRBsProcessed: u32,
OutputSRBsProcessed: u32,
SRBsIgnored: u32,
InputSRBsMissing: u32,
OutputSRBsMissing: u32,
OutputFailures: u32,
InternalErrors: u32,
ExternalErrors: u32,
InputDiscontinuities: u32,
DSPFailures: u32,
TvTunerChanges: u32,
VBIHeaderChanges: u32,
LineConfidenceAvg: u32,
BytesOutput: u32,
};type
VBICODECFILTERING_STATISTICS_COMMON {.bycopy.} = object
InputSRBsProcessed: uint32
OutputSRBsProcessed: uint32
SRBsIgnored: uint32
InputSRBsMissing: uint32
OutputSRBsMissing: uint32
OutputFailures: uint32
InternalErrors: uint32
ExternalErrors: uint32
InputDiscontinuities: uint32
DSPFailures: uint32
TvTunerChanges: uint32
VBIHeaderChanges: uint32
LineConfidenceAvg: uint32
BytesOutput: uint32struct VBICODECFILTERING_STATISTICS_COMMON
{
uint InputSRBsProcessed;
uint OutputSRBsProcessed;
uint SRBsIgnored;
uint InputSRBsMissing;
uint OutputSRBsMissing;
uint OutputFailures;
uint InternalErrors;
uint ExternalErrors;
uint InputDiscontinuities;
uint DSPFailures;
uint TvTunerChanges;
uint VBIHeaderChanges;
uint LineConfidenceAvg;
uint BytesOutput;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; VBICODECFILTERING_STATISTICS_COMMON サイズ: 56 バイト(x64)
dim st, 14 ; 4byte整数×14(構造体サイズ 56 / 4 切り上げ)
; InputSRBsProcessed : DWORD (+0, 4byte) st.0 = 値 / 値 = st.0 (lpoke/lpeek も可)
; OutputSRBsProcessed : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; SRBsIgnored : DWORD (+8, 4byte) st.2 = 値 / 値 = st.2 (lpoke/lpeek も可)
; InputSRBsMissing : DWORD (+12, 4byte) st.3 = 値 / 値 = st.3 (lpoke/lpeek も可)
; OutputSRBsMissing : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; OutputFailures : DWORD (+20, 4byte) st.5 = 値 / 値 = st.5 (lpoke/lpeek も可)
; InternalErrors : DWORD (+24, 4byte) st.6 = 値 / 値 = st.6 (lpoke/lpeek も可)
; ExternalErrors : DWORD (+28, 4byte) st.7 = 値 / 値 = st.7 (lpoke/lpeek も可)
; InputDiscontinuities : DWORD (+32, 4byte) st.8 = 値 / 値 = st.8 (lpoke/lpeek も可)
; DSPFailures : DWORD (+36, 4byte) st.9 = 値 / 値 = st.9 (lpoke/lpeek も可)
; TvTunerChanges : DWORD (+40, 4byte) st.10 = 値 / 値 = st.10 (lpoke/lpeek も可)
; VBIHeaderChanges : DWORD (+44, 4byte) st.11 = 値 / 値 = st.11 (lpoke/lpeek も可)
; LineConfidenceAvg : DWORD (+48, 4byte) st.12 = 値 / 値 = st.12 (lpoke/lpeek も可)
; BytesOutput : DWORD (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global VBICODECFILTERING_STATISTICS_COMMON
#field int InputSRBsProcessed
#field int OutputSRBsProcessed
#field int SRBsIgnored
#field int InputSRBsMissing
#field int OutputSRBsMissing
#field int OutputFailures
#field int InternalErrors
#field int ExternalErrors
#field int InputDiscontinuities
#field int DSPFailures
#field int TvTunerChanges
#field int VBIHeaderChanges
#field int LineConfidenceAvg
#field int BytesOutput
#endstruct
stdim st, VBICODECFILTERING_STATISTICS_COMMON ; NSTRUCT 変数を確保
st->InputSRBsProcessed = 100
mes "InputSRBsProcessed=" + st->InputSRBsProcessed