ICodecAPI インターフェイス

ICodecAPI インターフェイスは、アプリケーションやドライバがサードパーティ製のハードウェア エンコーダまたはソフトウェア エンコーダと通信してインターフェイスを実装する標準の方法を定義する。このインターフェイスの使い方の詳細については、「エンコーダ API」を参照すること。

注 : このインターフェイスは、IEncoderAPI インターフェイスに代わるものである。IEncoderAPI インターフェイスの使用は避けること。

エンコーダは、システム レジストリにプロファイル情報や能力情報を格納すると想定される。アプリケーションはこのインターフェイスを使って、デバイス列挙中にデバイスを照会できる。デフォルトのプロファイルは、HLKM\Software\Classes\CLSID\<category>\Profiles に格納されている。各プロファイルはレジストリ キーで、そのデフォルト設定はプロファイルのテキストの説明である。値はそれぞれ、GUID 名とその後ろに続けて数値の GUID 値を含む文字列の値を持っている。以下に例を示す。

  HLKM\Software\Classes\CLSID\<category>\Profiles\DVD
    default "HQ DVD"
    REG_SZ {659e5ecc-b1b9-4d29-8304-86911fb33165} = "0"
    REG_SZ {3c2009e0-7598-4454-86ba-de8edc342645} = "1234"

ここで {...} は、アプリケーションが自身のユーザー インターフェイスにマップできるプロパティ GUID である。一連の標準プロファイルの定義については、現在検討中である。

デフォルトの CODEC 機能は、HLKM\Software\Classes\CLSID\<category>\Instance\<Filter CLSID>\Capabilities に格納されている。値はそれぞれ、GUID 名とその後ろに続けて数値の GUID 値を含む文字列の値を持っている。以下に例を示す。

HLKM\Software\Classes\CLSID\<category>\Instance\<My DVD encoder>\Capabilities
     default "My DVD encoder"
     REG_SZ_MULTI {659e5ecc-b1b9-4d29-8304-86911fb33165}

ここで {...} は、アプリケーションが自身のユーザー インターフェイスにマップできるプロパティ GUID である。

ICodecAPI インターフェイスは、IUnknown から継承するメソッド以外に以下のメソッドも公開する。

メソッド 説明
GetAllSettings 現在のエンコーダ設定をストリームに保存する。
GetDefaultValue 引数にデフォルト値がある場合はそのデフォルト値を取得する。
GetParameterRange 引数の有効な値の範囲を返す。
GetParameterValues 指定された引数がサポートする値の一覧を返す。
GetValue 指定された引数の現在の値を取得する。
IsModifiable 引数を変更できるかどうかを照会する。
IsSupported 指定された引数がサポートされているかどうかを照会する。
RegisterForEvent エンコーダから指定されたイベントを受け取るためにアプリケーションを登録する。
SetAllDefaults すべての引数をデフォルトの値に戻す。
SetAllDefaultsWithNotify すべての引数をデフォルトの値に戻し、変更された設定の一覧を返す。
SetAllSettings ストリームからエンコーダ設定を読み込み、その設定をエンコーダに設定する。
SetAllSettingsWithNotify ストリームからエンコーダ設定を読み込み、その設定をエンコーダに設定し、変更された設定の一覧を返す。
SetValue 引数の値を設定する。
SetValueWithNotify 引数の値を設定し、その結果として変更された他の設定の一覧を返す。
UnregisterForEvent 指定されたエンコーダ イベントからアプリケーションの登録を解除する。

注意

IEncoderAPI インターフェイスは、さまざまなエンコーダ引数を識別する一連の GUID を定義した。ICodecAPI インターフェイスもこれらの GUID をサポートするが、このインターフェイスで使う場合は、サポートされる GUID はより幅広い一覧が定義されることが予想される。これまでに定義されている GUID の一覧については、IEncoderAPI のドキュメントを参照すること。

参照

エンコーダ API