Share via


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 引数で指定されたピークを上回ることは決してない。

参照