KSPROPERTY_CAMERACONTROL_EXTENDED_VIDEOSTABILIZATION
この拡張プロパティ コントロールは、driver\MFT0 のデジタル Video Stabilization を制御するために使用されます。
用法の要点
範囲 | コントロール | Type |
---|---|---|
Version 1 |
ピン留めする |
同期 |
以下のフラグを KSCAMERA_EXTENDEDPROP_HEADER.Flags フィールド フラグに設定し、driver\MFT0 のデジタル Video Stabilization を制御することができます。 既定では、ドライバーは Video Stabilization をオフにする必要があります。
#define KSCAMERA_EXTENDEDPROP_VIDEOSTABILIZATION_OFF 0x0000000000000000
#define KSCAMERA_EXTENDEDPROP_VIDEOSTABILIZATION_ON 0x0000000000000001
#define KSCAMERA_EXTENDEDPROP_VIDEOSTABILIZATION_AUTO 0x0000000000000002
ドライバーがデジタル Video Stabilization をサポートしていない場合、ドライバーは、このコントロールを実装しないでください。
ドライバーがこのコントロールをサポートしている場合は、VIDEOSTABILIZATION_ON\OFF をサポートする必要があります。
このコントロールの SET 呼び出しは、ビデオ ピンが KSSTATE_STOP 状態より高い状態の場合は影響しません。 ドライバーは、ビデオ ピンが停止状態でない場合に受信した SET 呼び出しを拒否し、STATUS_INVALID_DEVICE_STATE を返します。 GET 呼び出しでは、ドライバーが [Flags] フィールドの現在の設定を返す必要があります。
プロファイルのコンテキストでこのコントロールを使用する場合、プロファイルは品質モードのドライバーへのヒントとして機能します。 ドライバーは、ビデオ会議や高品質のビデオ録画など、選択したプロファイルに基づいて Video Stabilization が有効になっているときに、低待機時間または高品質を最適化するかどうかを決定できます。
Note
PROPSETID_VIDCAP_CAMERACONTROL_VIDEO_STABILIZATION は Windows 10 では非推奨となっています。
以下の表では、フラグの機能について説明します。
フラグ | 説明 |
---|---|
KSCAMERA_EXTENDEDPROP_VIDEOSTABILIZATION_OFF |
これは必須の機能です。 指定すると、driver\MFT0 でデジタル Video Stabilization が無効になります。 |
KSCAMERA_EXTENDEDPROP_VIDEOSTABILIZATION_ON |
これは必須の機能です。 指定すると、driver\MFT0 でデジタル Video Stabilization が有効になり、既定のオーバースキャン パディング設定はドライバーによって決定されます。 このフラグは、AUTO フラグおよび OFF フラグと相互に排他的です。 |
KSCAMERA_EXTENDEDPROP_VIDEOSTABILIZATION_AUTO |
この機能は任意です。 このような機能をサポートするドライバーを指定すると、シーン分析とキャプチャ シナリオに基づいて、Video Stabilization を実行する必要があるかどうか、およびどの程度の安定化が適用するかが決定されます。 このフラグは、ON フラグおよび OFF フラグと相互に排他的です。 |
Note
実装によっては、オーバースキャンされたバッファーは、ドライバーの内部またはパイプラインによって割り当てられる場合があります。
オーバースキャンされたバッファーがドライバーによって割り当てられる場合、ドライバーは通常のメディアの種類とオーバースキャンされたメディアの種類の両方をアドバタイズする必要があります。 MFT0 は、通常のメディアの種類をアドバタイズする必要があります。 MFT0 の出力メディアの種類に通常のメディアの種類を設定すると、MFT0 は、Video Stabilization がオンになっている場合、入力メディアの種類として、ドライバーによってアドバタイズされたメディアの種類から、対応するオーバースキャンされたメディアの種類を選択する必要があります。 Video Stabilization がオフになっている場合、MFT0 は通常のメディアの種類を入力メディアの種類として選択する必要があります。 Video Stabilization をオンにすると、オーバースキャンされたメディアの種類が出力メディアの種類として設定されている場合、MFT0 は MF_E_INVALIDMEDIATYPE を返す必要があります。
オーバースキャンされたバッファーがドライバーによって割り当てられている場合は、ドライバーと MFT0 の両方が通常のメディアの種類をアドバタイズする必要があります。 MFT0 では、入力メディアの種類と出力メディアの種類の両方に対して、通常のメディアの種類を設定する必要があります。
効果ベースの Video Stabilization (つまり、ドライバーでも MFT0 でも実行されていない Video Stabilization) をサポートするには、ドライバーと MFT0 は、オーバースキャンされたメディアの種類に関係なく、追加でアドバタイズする必要があります。 この場合、通常のメディアの種類とオーバースキャンされたメディアの種類の両方が、ドライバーと MFT0 によって公開されます。 効果ベースと driver\MFT0 ベースの Video Stabilization の両方が正しく動作するように、次の規則が適用されます。
driver\MFT0 ベースの Video Stabilization がオンになっているときに、オーバースキャンされたメディアの種類が MFT0 出力メディアの種類として設定されている場合、MFT0 は MF_E_INVALIDMEDIATYPE を返す必要があります。
通常のメディアの種類が MFT0 出力メディアの種類として設定されている場合、エフェクト ベースの Video Stabilization がオーバースキャンされたメディアの種類のみを受け入れることができる場合、エフェクトベースのビデオ安定化をオンにしようとすると、アプリはエラーを返す必要があります。
次の表は、Video Stabilization コントロールを使用する場合の KSCAMERA_EXTENDEDPROP_HEADER 構造体フィールドの説明と要件を示します。
メンバー | 説明 |
---|---|
Version |
これは 1 である必要があります。 |
PinId |
ビデオ ピンに関連付けられているプレビュー ID である必要があります。 |
サイズ |
これは sizeof(KSCAMERA_EXTENDEDPROP_HEADER) + sizeof(KSCAMERA_EXTENDEDPROP_VALUE) にする必要があります。 |
結果 |
最後の SET 操作のエラー結果を示します。 SET 操作が実行されていない場合は、0 にする必要があります。 |
機能 |
これは、上記で定義したサポートされている KSCAMERA_EXTENDEDPROP_VIDEOSTABILIZATION_XXX フラグのビット論理和である必要があります。 |
Flags |
これは読み取り/書き込みフィールドです。 これは、上記で定義した KSCAMERA_EXTENDEDPROP_VIDEOSTABILIZATION_XXX フラグのいずれかになります。 |
要件
ヘッダー |
Ksmedia.h |