KSPROPERTY_CAMERACONTROL_EXTENDED_RELATIVEPANELOPTIMIZATION
KSPROPERTY_CAMERACONTROL_EXTENDED_RELATIVEPANELOPTIMIZATION は、アプリケーションのアクティブなディスプレイを基準にして、カメラが前面に向いているかどうかをドライバーに通知するために使用されるプロパティ ID です。 Windows では、新しい WinRT API プロパティ PanelBasedOptimizationControl.Panel が設定されると、プロパティが設定されます。
KSProperty コントロールの設定例は、GitHub の AVStream カメラ サンプル ドライバー で確認してください。
用法の要点
Yammer の入手 | 設定 | 移行先 | プロパティ記述子の種類 | プロパティ値の種類 |
---|---|---|---|---|
はい | Yes | Assert | KSPROPERTY | KSCAMERA_EXTENDEDPROP_HEADER |
解説
プロパティ要求には、KSCAMERA_EXTENDEDPROP_HEADER 構造体と KSCAMERA_EXTENDEDPROP_VALUE 構造体が含まれています。
プロパティ データの合計サイズは、sizeof(KSCAMERA_EXTENDEDPROP_HEADER) + sizeof(KSCAMERA_EXTENDEDPROP_VALUE)
です。
KSCAMERA_EXTENDEDPROP_HEADER の Size メンバーは、このプロパティ データの合計サイズに設定されます。
以下は、KSCAMERA_EXTENDEDPROP_HEADER.Flags フィールドと KSCAMERA_EXTENDEDPROP_HEADER.Capability フィールドに配置できるフラグです。
相対パネル最適化モード | 説明 |
---|---|
KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_OFF | カメラは通常の動作モードを使用します |
KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_ON | カメラは、値フィールドに記述されている位置に対して最適化を使用します |
KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_DYNAMIC | カメラ場所のヒントは、ストリームにグリッチを発生させることなくストリーミング中に動的に調整できます |
KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION は常に同期コントロールです。
どのアプリでもプロパティを読み取ることができますが、排他的アクセスのためにカメラを開いたアプリのみがプロパティ値に書き込むことができます。
排他モードアクセスを持たずにプロパティを書き込もうとすると、適切なエラー コードが返されます。
この DDI を PanelBasedOptimizationControl にマッピングする場合、PanelBasedOptimizationControl を使用するアプリケーションは Panel 値を設定します。この値は、Windows がペイロードの KSCAMERA_EXTENDEDPROP_VALUE フィールドをプログラムするために内部的に使用します。
Capability フィールドと Flags フィールドは、Windows によって制御されます。
カメラ デバイスのストリーミング中にドライバーが SET 操作を受け取り、フラグ KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_DYNAMIC* が設定されていない場合、ドライバーは状態ベースのエラーを返します。
次の表に、メタデータ コントロールを使用する場合の KSCAMERA_EXTENDEDPROP_HEADER 構造体フィールドの要件を示します。
メンバー | 説明 |
---|---|
Version | これは 1 である必要があります。 |
PinId | KSCAMERA_EXTENDEDPROP_FILTERSCOPE (0xFFFFFFFF) |
サイズ | これは sizeof(KSCAMERA_EXTENDEDPROP_HEADER) + sizeof(KSCAMERA_EXTENDEDPROP_VALUE) にする必要があります。 |
結果 | 最後の SET 操作のエラー結果を示します。 SET 操作が実行されていない場合は、0 にする必要があります。 |
機能 | 上記で定義した、サポートされている KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_XXX フラグのビット論理和にする必要があります。 |
Flags | これは読み取り/書き込みフィールドです。 これは、上記で定義した KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_ON または KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_OFF フラグのいずれかです。 |
KSCAMERA_EXTENDEDPROP_HEADER の Flags フィールドに KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_ON が指定されている場合、Value.ul フィールドはカメラが現在向いている相対方向の PLD を指定する必要があります。
ACPI PLD のリスト値のいずれかを指定できますが、最も頻繁に使用されるのは、Front、Back または Unknown です。
KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_OFF を指定した場合、SET 操作では、Value フィールドは無視されます。
GET 操作の場合、ドライバーは、カメラが現在プログラムされている方向を返す必要があります。
KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_OFF が指定されている場合、または値が設定されていない場合は、デバイスの既定の PLD を返す必要があります。
KSCAMERA_EXTENDEDPROP_RELATIVEPANELOPTIMIZATION_ON を指定した場合、最後に設定した値を返す必要があります。
要件
ヘッダー: ksmedia.h (Ksmedia.h をインクルード)