IAMAnalogVideoDecoder
COM公式ドキュメント
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。
get_AvailableTVFormats メソッドは、デコーダーがサポートするアナログビデオ形式を取得します。
| lAnalogVideoStandard | INT* | out | ビット単位の AnalogVideoStandard 列挙値を受け取る変数へのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
put_TVFormat メソッドは、アナログビデオ形式を設定します。
| lAnalogVideoStandard | INT | in | ビデオ形式を AnalogVideoStandard 列挙型のメンバーとして指定します。 |
戻り値
成功した場合は S_OK を返し、それ以外の場合はエラーコードを返します。
get_TVFormat メソッドは、現在のアナログビデオ形式を取得します。
| plAnalogVideoStandard | INT* | out | アナログビデオ形式を示す AnalogVideoStandard 列挙型のメンバーを受け取る変数へのポインター。 |
戻り値
成功した場合は S_OK を返し、それ以外の場合はエラーコードを返します。
get_HorizontalLocked メソッドは、水平同期がロックされているかどうかを判定します。
| plLocked | INT* | out | 次のいずれかの値を受け取る変数へのポインター。
|
戻り値
HRESULT 値を返します。指定可能な値には次のものがあります。
| 戻り値コード | 説明 |
|---|---|
| デバイスはこのメソッドをサポートしていません。 | |
| 成功しました。 |
put_VCRHorizontalLocking メソッドは、ビデオがテープソースか放送ソースかを指定します。
| lVCRHorizontalLocking | INT | in | 次のいずれかの値を指定します。
|
戻り値
HRESULT 値を返します。指定可能な値には次のものがあります。
| 戻り値コード | 説明 |
|---|---|
| デバイスはこのメソッドをサポートしていません。 | |
| 成功しました。 |
解説(Remarks)
同期パルスのタイミング精度は、一般的に放送ソースよりもテープソースの方が低くなります。値を 1 に設定すると、デコーダーに基準を緩和するよう指示し、同期を維持できる可能性が高まります。
get_VCRHorizontalLocking メソッドは、デコーダーがテープソースと放送ソースのどちらからのビデオを想定しているかを示します。
| plVCRHorizontalLocking | INT* | out | 次のいずれかの値を受け取る変数へのポインター。
|
戻り値
HRESULT 値を返します。指定可能な値には次のものがあります。
| 戻り値コード | 説明 |
|---|---|
| デバイスはこのメソッドをサポートしていません。 | |
| 成功しました。 |
解説(Remarks)
同期パルスのタイミング精度は、一般的に放送ソースよりもテープソースの方が低くなります。返される値が 1 の場合、デコーダーは同期タイミングの基準を緩和することがあります。
get_NumberOfLInes メソッドは、ビデオ信号のスキャンライン数を取得します。
| plNumberOfLines | INT* | out | ビデオ信号のスキャンライン数を受け取る変数へのポインター。これは一般的に、NTSC では 525 ライン、PAL または SECAM では 625 ラインです。 |
戻り値
HRESULT 値を返します。指定可能な値には次のものがあります。
| 戻り値コード | 説明 |
|---|---|
| デバイスはこのメソッドをサポートしていません。 | |
| 成功しました。 |
put_OutputEnable メソッドは、ビデオポートバスを有効または無効にします。
| lOutputEnable | INT | in | バスを有効にするかどうかを指定します。次のいずれかの値を使用します。
|
戻り値
HRESULT 値を返します。指定可能な値には次のものがあります。
| 戻り値コード | 説明 |
|---|---|
| デバイスはこのメソッドをサポートしていません。 | |
| 成功しました。 |
解説(Remarks)
このメソッドは、共有ビデオポートバスを使用するデバイスにのみ適用されます。値が 1 の場合、デバイスはビデオポートバスを能動的に駆動します。値が 0 の場合、デバイスはトライステートになります。
get_OutputEnable メソッドは、ビデオポートバスが有効かどうかを判定します。
| plOutputEnable | INT* | out | 次のいずれかの値を受け取る変数へのポインター。
|
戻り値
HRESULT 値を返します。指定可能な値には次のものがあります。
| 戻り値コード | 説明 |
|---|---|
| デバイスはこのメソッドをサポートしていません。 | |
| 成功しました。 |
解説(Remarks)
このメソッドは、共有ビデオポートバスを使用するデバイスにのみ適用されます。返される値が 1 の場合、デバイスはビデオポートバスを能動的に駆動しています。値が 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 方式にも切替可。#define global IID_IAMAnalogVideoDecoder "{C6E13350-30AC-11D0-A18C-00A0C9118956}" #usecom global IAMAnalogVideoDecoder IID_IAMAnalogVideoDecoder "{}" #comfunc global IAMAnalogVideoDecoder_get_AvailableTVFormats 3 sptr #comfunc global IAMAnalogVideoDecoder_put_TVFormat 4 int #comfunc global IAMAnalogVideoDecoder_get_TVFormat 5 sptr #comfunc global IAMAnalogVideoDecoder_get_HorizontalLocked 6 sptr #comfunc global IAMAnalogVideoDecoder_put_VCRHorizontalLocking 7 int #comfunc global IAMAnalogVideoDecoder_get_VCRHorizontalLocking 8 sptr #comfunc global IAMAnalogVideoDecoder_get_NumberOfLines 9 sptr #comfunc global IAMAnalogVideoDecoder_put_OutputEnable 10 int #comfunc global IAMAnalogVideoDecoder_get_OutputEnable 11 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。