IEncoderAPI インターフェイス
注 : このインターフェイスは、下位互換性を保つ目的でのみ維持されているので、使用は避けること。新しいアプリケーションおよびドライバは、このインターフェイスではなく ICodecAPI インターフェイスを使うこと。
IEncoderAPI インターフェイスは、アプリケーションやドライバがサードパーティ製のハードウェア エンコーダまたはソフトウェア エンコーダと通信してインターフェイスを実装する標準の方法を定義する。このインターフェイスの使い方の詳細については、「エンコーダ API」を参照すること。
IEncoderAPI インターフェイスは、IUnknown から継承するメソッド以外に以下のメソッドも公開する。
メソッド | 説明 |
GetDefaultValue | 引数にデフォルト値がある場合はそのデフォルト値を取得する。 |
GetParameterRange | 引数が特定の値のリストではなく、ステップされる範囲をサポートするような場合に、引数がサポートする有効な値の範囲を取得する。 |
GetParameterValues | 指定された引数がサポートする値のリストを取得する。 |
GetValue | 指定された引数の現在の値を取得する。 |
IsAvailable | 指定したパラメータが利用可能かどうかを問い合わせる。 |
IsSupported | 指定された引数がサポートされているかどうかを問い合わせる。 |
SetValue | 引数の現在の値を設定する。 |
注意
さまざまなインターフェイス メソッドでは、uuids.h に定義されている次の GUID を使って、どの引数が設定されているか、取得されるかを示している。
パラメータ | 説明 |
ENCAPIPARAM_BITRATE | ビット レート (ビット/秒) を指定する。定数ビット レート(CBR) モードでは、この値で定数ビット レートを指定する。いずれかの変数ビット レートでは、平均ビット レートを指定する。この値は、32 ビット符号なし (long) である。 |
ENCAPIPARAM_PEAK_BITRATE | ピーク ビット レートを指定する。この引数は、ENCAPIPARAM_BITRATE_MODE が VariableBitRatePeak に設定されている場合に限り、意味がある。 |
ENCAPIPARAM_BITRATE_MODE | ビットレート モードをVIDEOENCODER_BITRATE_MODE 列挙値 (32 ビットの符号付き (long)) として指定する。 |
次の表は、VIDEOENCODER_BITRATE_MODE で定義される 2 つの変数ビットレート モードで、極端に高いか低いビットレート条件にある場合に、エンコーダの予想される動作を説明したものである。
条件 | モード | 動作 |
シーンが暗くなるか、動きがゼロになる。 | VariableBitRateAverage | 短い間 (数秒間)、ビット レートがENCAPIPARAM_BITRATE 引数で指定されたレートを下回る。しかし、4 分の周期を過ぎると、エンコーダは必要に応じて "ダミー" ビットをストリームに追加して平均レートを維持する。 |
シーンが暗くなるか、動きがゼロになる。 | VariableBitRatePeak | ビットレートは、ENCAPIPARAM_BITRATE 引数の値で指定される予想レートを下回ると予想される。このレートは、より複雑なシーンが開始されない限り、そのレベルにとどまることになる。 |
シーンが極端に複雑である。 | VariableBitRateAverage | 数秒間、レートは上がる。シーンが複雑な状態のままだと、レートは下がり、画像は、ENCAPIPARAM_BITRATE 引数の値で指定された平均を維持するために、濃淡ができる。 |
シーンが極端に複雑である。 | VariableBitRatePeak | レートは上がり、高い状態を維持し、ENCAPIPARAM_BITRATE 引数の値で指定された予想レートを上回る可能性がある。しかし、ENCAPIPARAM_PEAK_BITRATE 引数で指定されたピークを上回ることは決してない。 |
参照