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를 통해 노출됩니다.

이러한 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