Win32 API 日本語リファレンス
ホームMedia.DirectShow › IAMAnalogVideoDecoder

IAMAnalogVideoDecoder

COM
IIDc6e13350-30ac-11d0-a18c-00a0c9118956継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IAMAnalogVideoDecoder インターフェイスは、ビデオキャプチャフィルター内のアナログ-デジタル変換処理に関する情報を設定および取得します。デバイスがアナログビデオキャプチャデバイスである場合、WDM Video Capture フィルターはこのインターフェイスを公開します。

解説(Remarks)

Windows Driver Model (WDM) デバイスの場合、WDM ドライバーが PROPSETID_VIDCAP_VIDEODECODER プロパティセットをサポートしていれば、WDM Video Capture Filter がこのインターフェイスを自動的に公開します。詳細については、Windows Driver Kit (WDK) のドキュメントを参照してください。

メソッド 9

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT get_AvailableTVFormats(INT* lAnalogVideoStandard)

get_AvailableTVFormats メソッドは、デコーダーがサポートするアナログビデオ形式を取得します。

lAnalogVideoStandardINT*outビット単位の AnalogVideoStandard 列挙値を受け取る変数へのポインター。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 4 HRESULT put_TVFormat(INT lAnalogVideoStandard)

put_TVFormat メソッドは、アナログビデオ形式を設定します。

lAnalogVideoStandardINTinビデオ形式を AnalogVideoStandard 列挙型のメンバーとして指定します。

戻り値

成功した場合は S_OK を返し、それ以外の場合はエラーコードを返します。

vtbl 5 HRESULT get_TVFormat(INT* plAnalogVideoStandard)

get_TVFormat メソッドは、現在のアナログビデオ形式を取得します。

plAnalogVideoStandardINT*outアナログビデオ形式を示す AnalogVideoStandard 列挙型のメンバーを受け取る変数へのポインター。

戻り値

成功した場合は S_OK を返し、それ以外の場合はエラーコードを返します。

vtbl 6 HRESULT get_HorizontalLocked(INT* plLocked)

get_HorizontalLocked メソッドは、水平同期がロックされているかどうかを判定します。

plLockedINT*out

次のいずれかの値を受け取る変数へのポインター。

説明
0 水平同期はロックされていません。
1 水平同期はロックされています

戻り値

HRESULT 値を返します。指定可能な値には次のものがあります。

戻り値コード 説明
E_PROP_ID_UNSUPPORTED
デバイスはこのメソッドをサポートしていません。
S_OK
成功しました。
vtbl 7 HRESULT put_VCRHorizontalLocking(INT lVCRHorizontalLocking)

put_VCRHorizontalLocking メソッドは、ビデオがテープソースか放送ソースかを指定します。

lVCRHorizontalLockingINTin

次のいずれかの値を指定します。

説明
0 ビデオは放送ソースからのものです。
1 ビデオはテープソースからのものです。

戻り値

HRESULT 値を返します。指定可能な値には次のものがあります。

戻り値コード 説明
E_PROP_ID_UNSUPPORTED
デバイスはこのメソッドをサポートしていません。
S_OK
成功しました。

解説(Remarks)

同期パルスのタイミング精度は、一般的に放送ソースよりもテープソースの方が低くなります。値を 1 に設定すると、デコーダーに基準を緩和するよう指示し、同期を維持できる可能性が高まります。

vtbl 8 HRESULT get_VCRHorizontalLocking(INT* plVCRHorizontalLocking)

get_VCRHorizontalLocking メソッドは、デコーダーがテープソースと放送ソースのどちらからのビデオを想定しているかを示します。

plVCRHorizontalLockingINT*out

次のいずれかの値を受け取る変数へのポインター。

説明
0 デコーダーは放送ソースからのビデオを想定しています。
1 デコーダーはテープソースからのビデオを想定しています。

戻り値

HRESULT 値を返します。指定可能な値には次のものがあります。

戻り値コード 説明
E_PROP_ID_UNSUPPORTED
デバイスはこのメソッドをサポートしていません。
S_OK
成功しました。

解説(Remarks)

同期パルスのタイミング精度は、一般的に放送ソースよりもテープソースの方が低くなります。返される値が 1 の場合、デコーダーは同期タイミングの基準を緩和することがあります。

vtbl 9 HRESULT get_NumberOfLines(INT* plNumberOfLines)

get_NumberOfLInes メソッドは、ビデオ信号のスキャンライン数を取得します。

plNumberOfLinesINT*outビデオ信号のスキャンライン数を受け取る変数へのポインター。これは一般的に、NTSC では 525 ライン、PAL または SECAM では 625 ラインです。

戻り値

HRESULT 値を返します。指定可能な値には次のものがあります。

戻り値コード 説明
E_PROP_ID_UNSUPPORTED
デバイスはこのメソッドをサポートしていません。
S_OK
成功しました。
vtbl 10 HRESULT put_OutputEnable(INT lOutputEnable)

put_OutputEnable メソッドは、ビデオポートバスを有効または無効にします。

lOutputEnableINTin

バスを有効にするかどうかを指定します。次のいずれかの値を使用します。

説明
0 ビデオポートバスを無効にします。
1 ビデオポートバスを有効にします。

戻り値

HRESULT 値を返します。指定可能な値には次のものがあります。

戻り値コード 説明
E_PROP_ID_UNSUPPORTED
デバイスはこのメソッドをサポートしていません。
S_OK
成功しました。

解説(Remarks)

このメソッドは、共有ビデオポートバスを使用するデバイスにのみ適用されます。値が 1 の場合、デバイスはビデオポートバスを能動的に駆動します。値が 0 の場合、デバイスはトライステートになります。

vtbl 11 HRESULT get_OutputEnable(INT* plOutputEnable)

get_OutputEnable メソッドは、ビデオポートバスが有効かどうかを判定します。

plOutputEnableINT*out

次のいずれかの値を受け取る変数へのポインター。

説明
0 ビデオポートバスは無効です。
1 ビデオポートバスは有効です。

戻り値

HRESULT 値を返します。指定可能な値には次のものがあります。

戻り値コード 説明
E_PROP_ID_UNSUPPORTED
デバイスはこのメソッドをサポートしていません。
S_OK
成功しました。

解説(Remarks)

このメソッドは、共有ビデオポートバスを使用するデバイスにのみ適用されます。返される値が 1 の場合、デバイスはビデオポートバスを能動的に駆動しています。値が 0 の場合、デバイスはトライステートです。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IAMAnalogVideoDecoder "{C6E13350-30AC-11D0-A18C-00A0C9118956}"
#usecom global IAMAnalogVideoDecoder IID_IAMAnalogVideoDecoder "{}"
#comfunc global IAMAnalogVideoDecoder_get_AvailableTVFormats    3 var
#comfunc global IAMAnalogVideoDecoder_put_TVFormat              4 int
#comfunc global IAMAnalogVideoDecoder_get_TVFormat              5 var
#comfunc global IAMAnalogVideoDecoder_get_HorizontalLocked      6 var
#comfunc global IAMAnalogVideoDecoder_put_VCRHorizontalLocking  7 int
#comfunc global IAMAnalogVideoDecoder_get_VCRHorizontalLocking  8 var
#comfunc global IAMAnalogVideoDecoder_get_NumberOfLines         9 var
#comfunc global IAMAnalogVideoDecoder_put_OutputEnable          10 int
#comfunc global IAMAnalogVideoDecoder_get_OutputEnable          11 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。