ホーム › Media.DirectShow › IBDA_Encoder
IBDA_Encoder
COMメソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| NumAudioFmts | DWORD* | out | サポートする音声フォーマット数を受け取るDWORDへのポインタ。 |
| NumVideoFmts | DWORD* | out | サポートする映像フォーマット数を受け取るDWORDへのポインタ。 |
vtbl 4 HRESULT EnumAudioCapability(DWORD FmtIndex, DWORD* MethodID, DWORD* AlgorithmType, DWORD* SamplingRate, DWORD* BitDepth, DWORD* NumChannels)
| FmtIndex | DWORD | in | 能力を列挙する音声フォーマットのインデックス(0基点)を指定する。 |
| MethodID | DWORD* | out | 符号化方式の識別子を受け取るDWORDへのポインタ。 |
| AlgorithmType | DWORD* | out | 符号化アルゴリズム種別を受け取るDWORDへのポインタ。 |
| SamplingRate | DWORD* | out | サンプリングレート(Hz)を受け取るDWORDへのポインタ。 |
| BitDepth | DWORD* | out | 量子化ビット深度を受け取るDWORDへのポインタ。 |
| NumChannels | DWORD* | out | チャンネル数を受け取るDWORDへのポインタ。 |
vtbl 5 HRESULT EnumVideoCapability(DWORD FmtIndex, DWORD* MethodID, DWORD* AlgorithmType, DWORD* VerticalSize, DWORD* HorizontalSize, DWORD* AspectRatio, DWORD* FrameRateCode, DWORD* ProgressiveSequence)
| FmtIndex | DWORD | in | 能力を列挙する映像フォーマットのインデックス(0基点)を指定する。 |
| MethodID | DWORD* | out | 符号化方式の識別子を受け取るDWORDへのポインタ。 |
| AlgorithmType | DWORD* | out | 符号化アルゴリズム種別を受け取るDWORDへのポインタ。 |
| VerticalSize | DWORD* | out | 映像の垂直サイズ(ライン数)を受け取るDWORDへのポインタ。 |
| HorizontalSize | DWORD* | out | 映像の水平サイズ(ピクセル数)を受け取るDWORDへのポインタ。 |
| AspectRatio | DWORD* | out | アスペクト比コードを受け取るDWORDへのポインタ。 |
| FrameRateCode | DWORD* | out | フレームレートを示すコードを受け取るDWORDへのポインタ。 |
| ProgressiveSequence | DWORD* | out | プログレッシブ走査か否かを示す値を受け取るDWORDへのポインタ。 |
vtbl 6 HRESULT SetParameters(DWORD AudioBitrateMode, DWORD AudioBitrate, DWORD AudioMethodID, DWORD AudioProgram, DWORD VideoBitrateMode, DWORD VideoBitrate, DWORD VideoMethodID)
| AudioBitrateMode | DWORD | in | 音声ビットレート制御モード(CBR/VBR等)を指定する。 |
| AudioBitrate | DWORD | in | 設定する音声ビットレート(bps)を指定する。 |
| AudioMethodID | DWORD | in | 使用する音声符号化方式の識別子を指定する。 |
| AudioProgram | DWORD | in | 符号化対象の音声プログラム番号を指定する。 |
| VideoBitrateMode | DWORD | in | 映像ビットレート制御モード(CBR/VBR等)を指定する。 |
| VideoBitrate | DWORD | in | 設定する映像ビットレート(bps)を指定する。 |
| VideoMethodID | DWORD | in | 使用する映像符号化方式の識別子を指定する。 |
vtbl 7 HRESULT GetState(DWORD* AudioBitrateMax, DWORD* AudioBitrateMin, DWORD* AudioBitrateMode, DWORD* AudioBitrateStepping, DWORD* AudioBitrate, DWORD* AudioMethodID, DWORD* AvailableAudioPrograms, DWORD* AudioProgram, DWORD* VideoBitrateMax, DWORD* VideoBitrateMin, DWORD* VideoBitrateMode, DWORD* VideoBitrate, DWORD* VideoBitrateStepping, DWORD* VideoMethodID, DWORD* SignalSourceID, ULONGLONG* SignalFormat, BOOL* SignalLock, INT* SignalLevel, DWORD* SignalToNoiseRatio)
| AudioBitrateMax | DWORD* | out | 音声ビットレートの最大値(bps)を受け取るDWORDへのポインタ。 |
| AudioBitrateMin | DWORD* | out | 音声ビットレートの最小値(bps)を受け取るDWORDへのポインタ。 |
| AudioBitrateMode | DWORD* | out | 現在の音声ビットレート制御モードを受け取るDWORDへのポインタ。 |
| AudioBitrateStepping | DWORD* | out | 音声ビットレート設定可能な刻み幅(bps)を受け取るDWORDへのポインタ。 |
| AudioBitrate | DWORD* | out | 現在の音声ビットレート(bps)を受け取るDWORDへのポインタ。 |
| AudioMethodID | DWORD* | out | 現在の音声符号化方式の識別子を受け取るDWORDへのポインタ。 |
| AvailableAudioPrograms | DWORD* | out | 利用可能な音声プログラム数を受け取るDWORDへのポインタ。 |
| AudioProgram | DWORD* | out | 現在選択中の音声プログラム番号を受け取るDWORDへのポインタ。 |
| VideoBitrateMax | DWORD* | out | 映像ビットレートの最大値(bps)を受け取るDWORDへのポインタ。 |
| VideoBitrateMin | DWORD* | out | 映像ビットレートの最小値(bps)を受け取るDWORDへのポインタ。 |
| VideoBitrateMode | DWORD* | out | 現在の映像ビットレート制御モードを受け取るDWORDへのポインタ。 |
| VideoBitrate | DWORD* | out | 現在の映像ビットレート(bps)を受け取るDWORDへのポインタ。 |
| VideoBitrateStepping | DWORD* | out | 映像ビットレート設定可能な刻み幅(bps)を受け取るDWORDへのポインタ。 |
| VideoMethodID | DWORD* | out | 現在の映像符号化方式の識別子を受け取るDWORDへのポインタ。 |
| SignalSourceID | DWORD* | out | 現在の信号源識別子を受け取るDWORDへのポインタ。 |
| SignalFormat | ULONGLONG* | out | 信号フォーマット情報を受け取るULONGLONGへのポインタ。 |
| SignalLock | BOOL* | out | 信号がロックされているか否かを受け取るBOOLへのポインタ。 |
| SignalLevel | INT* | out | 信号レベル(dB等)を受け取るINTへのポインタ。 |
| SignalToNoiseRatio | DWORD* | out | 信号対雑音比(SNR)を受け取るDWORDへのポインタ。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IBDA_Encoder "{3A8BAD59-59FE-4559-A0BA-396CFAA98AE3}" #usecom global IBDA_Encoder IID_IBDA_Encoder "{}" #comfunc global IBDA_Encoder_QueryCapabilities 3 var,var #comfunc global IBDA_Encoder_EnumAudioCapability 4 int,var,var,var,var,var #comfunc global IBDA_Encoder_EnumVideoCapability 5 int,var,var,var,var,var,var,var #comfunc global IBDA_Encoder_SetParameters 6 int,int,int,int,int,int,int #comfunc global IBDA_Encoder_GetState 7 var,var,var,var,var,var,var,var,var,var,var,var,var,var,var,var,var,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IBDA_Encoder "{3A8BAD59-59FE-4559-A0BA-396CFAA98AE3}" #usecom global IBDA_Encoder IID_IBDA_Encoder "{}" #comfunc global IBDA_Encoder_QueryCapabilities 3 sptr,sptr #comfunc global IBDA_Encoder_EnumAudioCapability 4 int,sptr,sptr,sptr,sptr,sptr #comfunc global IBDA_Encoder_EnumVideoCapability 5 int,sptr,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global IBDA_Encoder_SetParameters 6 int,int,int,int,int,int,int #comfunc global IBDA_Encoder_GetState 7 sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。