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 |