IMFExtendedCameraControl インターフェイス (mfidl.h)
このインターフェイスは、キャプチャ デバイスの拡張プロパティを構成するために使用されます。 サポートされているプロパティと機能は、ksmedia.h で定義されているヘッダー ファイルで定数として定義され、名前付け規則 KSCAMERA_EXTENDEDPROP_。
継承
IMFExtendedCameraControl インターフェイスは、IUnknown インターフェイスから継承します。
メソッド
IMFExtendedCameraControl インターフェイスには、これらのメソッドがあります。
IMFExtendedCameraControl::CommitSettings 構成されたコントロール設定をカメラ ドライバーにコミットします。 |
IMFExtendedCameraControl::GetCapabilities キャプチャ デバイスでサポートされているプロパティ機能のクエリ。 |
IMFExtendedCameraControl::GetFlags キャプチャ デバイスでプロパティ フラグを照会します。 |
IMFExtendedCameraControl::LockPayload キャプチャ デバイス コントロールに含まれる内部ペイロード バッファーをロックして、ペイロードのクエリまたは変更を有効にします。 |
IMFExtendedCameraControl::SetFlags キャプチャ デバイス上のプロパティのフラグを設定します。 |
IMFExtendedCameraControl::UnlockPayload キャプチャ デバイス コントロールに含まれる未加工のペイロードのロックを解除します。 |
注釈
IMFExtendedCameraController::GetExtendedCameraControl を呼び出して、このインターフェイスのインスタンスを取得します
サポートされていないプロパティ
一部のKSCAMERA_EXTENDEDPROP_プロパティは、この API ではサポートされていないことに注意してください。 これらの機能には、WinRT メディア キャプチャ API を介してのみクライアント アプリからアクセスできます。
KSPROPERTY_CAMERACONTROL_EXTENDED_WARMSTART
このプロパティの動作は、次の WinRT API を介して公開されます。
- PrepareLowLagPhotoCaptureAsync
- PrepareLowLagRecordToCustomSinkAsync
- PrepareLowLagRecordToStorageFileAsync
- PrepareLowLagRecordToStreamAsync
これらの API を使用すると、キャプチャ パイプラインが選択したメディアの種類で構成され、ドライバー ピンが一時停止状態になります。これにより、操作に割り当てられているハードウェア リソースまたは構成済みのハードウェア リソースを取得するようにドライバーに通知されます。 これにより、リソースの準備を事前に読み込むことで待機時間を最小限に抑えることができます。
ウォーム スタート機能はキャプチャ デバイス用のオプションのコントロールであるため、コントロールが使用できない場合、上記の API はウォーム スタート動作を提供しません。 これらの API は引き続きキャプチャのシンク側を構成するため、それらを使用する利点があります。
KSPROPERTY_CAMERACONTROL_EXTENDED_PHOTOMODE
このプロパティの動作は、次の WinRT API を介して公開されます。
これらの API は、パイプラインのキャプチャ側とシンク側の両方を構成し、ドライバー ピンを実行中の状態にして、フレームをキャプチャしますが、まだパイプラインにフレームを渡していません。 キャプチャ操作が開始されると、フレームはパイプラインの通過を開始します。
この機能はキャプチャ デバイス用の省略可能なコントロールであるため、コントロールが使用できない場合、上記の API はエラーを返します。
例
次の例では、 KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON フラグを設定し、設定をコミットする方法を示します。
if (FAILED(m_cameraController->GetExtendedCameraControl(MF_CAPTURE_ENGINE_MEDIASOURCE,
KSPROPERTY_CAMERACONTROL_EXTENDED_TORCHMODE,
cameraControl.put())))
{
// Return false to indicate that the Torch Mode control is not available.
return false;
}
ULONGLONG capabilities = cameraControl->GetCapabilities();
// Check if the torch can be turned on.
if (capabilities & KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON)
{
// Check if the torch is off.
if ((cameraControl->GetFlags() & KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON) == 0)
{
// Torch is off. Tell the camera to turn it on.
check_hresult(cameraControl->SetFlags(KSCAMERA_EXTENDEDPROP_VIDEOTORCH_ON));
// Write the changed settings to the driver.
check_hresult(cameraControl->CommitSettings());
}
}
要件
サポートされている最小のクライアント | Windows 10 ビルド 20348 |
サポートされている最小のサーバー | Windows 10 ビルド 20348 |
ヘッダー | mfidl.h |